2016-09-14 50 views
2

我已经成功连接我的客户端程序到我的服务器,但是当试图做基本写入到服务器我收到错误C#服务器程序引发异常

System.ArgumentOutOfRangeException:指定参数超出范围的有效值。
在System.Net.Sockets.NetworkStream.Read(字节[]缓冲液,的Int32偏移的Int32大小)

这是我的代码不包括连接,并停止所述连接

while ((true)) { 
    try { 
     requestCount = requestCount + 1; 
     NetworkStream networkStream = clientSocket.GetStream(); 
     byte[] bytesFrom = new byte[10025]; 

     //Problem 
     networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize); 
     string dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom); 
     dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); 

     Console.WriteLine(" >> Data from client - " + dataFromClient); 
     string serverResponse = "Last Message from client" + dataFromClient; 

     Byte[] sendBytes = Encoding.ASCII.GetBytes(serverResponse); 
     networkStream.Write(sendBytes, 0, sendBytes.Length); 
     networkStream.Flush(); 
     Console.WriteLine(" >> " + serverResponse); 
    } 
    catch (Exception ex) { 
     Console.WriteLine(ex.ToString()); 
    } 
} 

回答

3

您是阅读超出提供的缓冲区的大小,请尝试:

networkStream.Read(bytesFrom, 0, bytesFrom.Length); 
+1

完善现在的工作,由于我是新来的服务器/客户端程序 –

+0

@JeradHobgood如果这个答案解决您的问题请考虑将其作为回答,以表示欣赏并帮助未来的读者 – Steve

相关问题