2016-09-14 1 views
2

Я успешно подключила программу клиента к серверу, однако при попытке сделать основную запись на сервер я получаю ошибкуC# программа сервера метание исключения

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()); 
    } 
} 

ответ

3

Вы чтение за размером буфера поставляемого, попробуйте:

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

Совершенным он работает сейчас, спасибо я новичок в клиент/сервер программу –

+0

@JeradHobgood, если этот ответ решить вашу проблему пожалуйста, подумайте о том, чтобы отметить его как ответ, чтобы показать некоторую признательность и помочь будущим читателям – Steve