Member 14529812 Ответов: 1

Программа сокета C# в failled в ethernet (непроцедурной) связи. Ошибка


Сбой в связи Ethernet (Непроцедурной). Ошибка
другие решения пытались, но не решили ошибку получения на стороне клиента, как остановить эту ошибку на стороне клиента ?

Что я уже пробовал:

System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
clientSocket.NoDelay = true;
clientSocket.SendTimeout = 100;
clientSocket.ReceiveTimeout = 100;
clientSocket.Connect(IPAddress, PortNo);
NetworkStream serverStream = clientSocket.GetStream();
byte[] outStream = System.Text.Encoding.ASCII.GetBytes("" + "$");
serverStream.Write(outStream, 0, outStream.Length);
serverStream.Flush();
byte[] inStream = new byte[1024];
serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
returndata = System.Text.Encoding.ASCII.GetString(inStream);
serverStream.Dispose();
clientSocket.Close();

Richard MacCutchan

Вы не проверяете результаты ни одного из системных вызовов, поэтому у вас нет возможности сказать, успешно ли выполняется какой-либо из ваших кодов.

1 Ответов

Рейтинг:
1

RickZeeland

Ваши значения таймаута слишком коротки, обратите внимание, что эти значения находятся в миллисекунды.
Видеть: объект TcpClient.Свойство ReceiveTimeout (System.Net.Sockets) | Microsoft Docs[^]
Также видеть Сетевой поток.метод read[^]