【发布时间】:2015-05-16 15:55:40
【问题描述】:
我有一个运行 tcp 套接字的程序。它在 Windows 8.1 以下的任何设备上运行良好。我已经关闭了防火墙并设置了一切以允许此连接。
1.首先服务器确实在 windows 8.1 上运行
2.客户端套接字确实连接。
3.客户端发送字符串“login”,触发初始交互。
- 确实发送了该字符串。
4.服务器设置networkstream.read()时连接失败;
-我在调试器中没有看到任何东西,并且在其他
-系统
这里是我设置服务器监听的方式。这很传统。
//倾听客户的意见
public String listen() {
byte[] bytesFrom = new byte[10025];
string dataFromClient = null;
NetworkStream networkStream = this.clientSocket.GetStream();//get client input
This is the line that fails{
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);//read client info } -end fail
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);//pass client input to String
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));//parse to end
//MessageBox.Show("data:" + dataFromClient);
networkStream.Flush();
// networkStream.Close();
MessageBox.Show("data:" + dataFromClient);
return dataFromClient;
}
【问题讨论】:
-
定义“失败”...它会抛出异常吗?有什么例外?它不返回任何数据吗?查看代码,由于您没有从 Read 捕获返回值,您怎么知道返回了多少字节?
-
这就是问题所在,它是否会破坏 try/catch。但是每次我从编译器运行它时,我在调试中什么都看不到。我整个晚上都在尝试这个。实际上我确实捕获了数据。查看下一行的 Bytesform