已修复的问题:客户端没有收到来自服务器的任何字节,因为必须将其添加到防火墙例外列表中。
我的服务器-客户端连接正常,客户端可以将字节发送到服务器,服务器可以读取。问题是客户端没有从服务器本身接收任何字节。 我是网络编程的新手,请不要对我苛刻。
发送字节给客户端
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异常。