C#Server程序抛出异常

时间:2016-09-14 18:17:57

标签: c# client-server

我已成功将我的客户端程序连接到我的服务器,但是当尝试对服务器进行基本写入时,我收到错误

  

System.ArgumentOutOfRangeException:指定的参数超出有效值范围。
  在System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,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());
    }
}

1 个答案:

答案 0 :(得分:3)

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

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