我是C#的新手,所以我不知道为什么在Windows 7中我的应用程序(程序)运行正常,而在Windows Server 2012上,当我尝试从客户端获取消息时出现此错误。 C#。
错误:
发送功能:
byte[] outStream = System.Text.Encoding.ASCII.GetBytes(textBox2.Text + "$");
serverStream.Write(outStream, 0, outStream.Length);
serverStream.Flush();
接收功能:
NetworkStream networkStream = clientSocket.GetStream();
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));
Console.WriteLine("From client - " + clNo + " : " + dataFromClient);
此行中的问题:
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
也许在这里:(int)clientSocket.ReceiveBufferSize
如何解决这个问题,有什么想法吗?
最佳答案
我现在只需要处理TCP套接字,就找到了此示例代码,并得到了相同的错误消息。我在网上搜索,结果如下:
更改此:
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
变成这个:
networkStream.Read(bytesFrom, 0, bytesFrom.Length);
并且,如果在客户端遇到类似的错误,只需检查相同的
.Read()
部分。应用使用.Length
属性的相同解决方案。关于c# - 指定的参数超出范围C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23794225/