撇开Smart-ass的意见:即使你只对2行代码感兴趣,我敢打赌你的问题是在你的代码中的其他地方。
使用发现的代码的修改版本here,我构建了一个简单的例子,在我的测试中起作用。
public static void Main()
{
TcpListener server = null;
try
{
// Set the TcpListener on port 13000.
Int32 port = 13000;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
// TcpListener server = new TcpListener(port);
server = new TcpListener(localAddr, port);
// Start listening for client requests.
server.Start();
// Buffer for reading data
Byte[] bytes = new Byte[256];
Console.Write("Waiting for a connection... ");
// Perform a blocking call to accept requests.
// You could also user server.AcceptSocket() here.
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Connected!");
// Get a stream object for reading and writing
NetworkStream stream = client.GetStream();
stream.Read(bytes, 0, bytes.Length);
Console.WriteLine(System.Text.Encoding.ASCII.GetString(bytes));
// Shutdown and end connection
client.Close();
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
finally
{
// Stop listening for new clients.
server.Stop();
}
Console.WriteLine("\nHit enter to continue...");
Console.Read();
}
读取调用将等待并返回时,我与另一程序1个字节的发送。我们需要看一些代码来弄清楚为什么这个工作,而你的不工作。
第一:请发布您使用的实际代码 - 第二:尝试关闭客户端写入字节后的连接,因为我的猜测是,您正在使用*流*不是正确的方式 – Carsten 2012-04-02 04:13:48
我可以从代码中可以看出,它很可能是由海王星发射的粒子干扰的。我强烈建议你用锡纸遮挡你的整个城市,以获得更高质量的传输。 – 2012-04-02 04:18:17
第一:我已经解释了代码..在这个问题中,我只关注2行,我的客户端是Network.Write,我的服务器是Network.Read。 其次,我正在创建一个连接,并从我的客户端进行写入操作,然后执行Read操作以获取服务器的响应。我在那里僵持不下。 – user1296146 2012-04-02 04:45:06