指定的参数超出范围C

指定的参数超出范围C

我是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/

10-09 06:00