TcpClient无法从服务器接收字节

时间:2018-09-26 18:06:29

标签: c# multithreading sockets networking

已修复的问题:客户端没有收到来自服务器的任何字节,因为必须将其添加到防火墙例外列表中。

我的服务器-客户端连接正常,客户端可以将字节发送到服务器,服务器可以读取。问题是客户端没有从服务器本身接收任何字节。 我是网络编程的新手,请不要对我苛刻。

发送字节给客户端

try
{
    byte[] buff = Encoding.ASCII.GetBytes("message from server - " + 
    new Random().Next(8000) + "\n");

    NetworkStream ns = client.GetStream();
    ns.Write(buff, 0, buff.Length);
}
catch(Exception r) 
{ 
    richTextBox1.AppendText("Sending data to - " + client.Client.RemoteEndPoint + "\n" + r.Message);
}

从服务器接收字节

while(true)
{
    try
    {
        byte[] buff = new byte[1000];
        NetworkStream ns = client.GetStream();
        ns.Read(buff, 0, buff.Length);

        string s = Encoding.ASCII.GetString(buff);
        BackThread.ReportProgress(0, s);
    }
    catch(Exception r) 
    { 
        richTextBox1.AppendText("Failed to get data from server\n" + r.Message + "\n"); 
     }
}

有时,当客户端尝试从服务器接收字节时,会出现WsaCancelBlockingCall异常。

0 个答案:

没有答案