2016-09-14 95 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