Ошибка соединения TCP-клиента, существующее соединение было принудительно закрыто удаленным узлом - PullRequest
0 голосов
/ 06 августа 2020

Я запускаю службу Win на сервере 2012 R2, соединение службы всегда разрывается, и я получаю сообщение об ошибке ниже, я также передаю код подключения TCP.

Сообщение об ошибке:

Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом. InnerExceptionMessage Существующее соединение было принудительно закрыто удаленным hostStackTrace в System. Net .Sockets.NetworkStream.Read (буфер Byte [], смещение Int32, размер Int32)

try
            {
                IsStop = false;
                TcpClient client = null;
                TcpListener server = new TcpListener(IPAddress.Parse(ipAddress), port);
                server.Start();
                IsRunning = true;
                
                while (IsRunning)
                {
                    client = await server.AcceptTcpClientAsync();                   
                    try
                    {
                        using (NetworkStream stream = client.GetStream())

                        {                            
                            try
                            {
                            byte[] dataArray = new byte[36];
                                var bytesRead = stream.Read(dataArray, 0, 36);
                                if (dataArray[0] != 0)
                                {
                                    if (processString(dataArray, 4, 7) != 0)  // check ID 
                                    {
                                        Thread thread = new Thread(new ParameterizedThreadStart(DataProcessThreadAsync));
                                        object[] obj = new object[] { dataArray, thread };
                                        thread.Start(obj);
                                    }

                                }                              
                                stream.Close();    
                                stream.Dispose();
                                
                            }
                         catch (Exception ex)
                        {
              
                            LoggerHelper.Instance.LogError(ex);
                        }
                    }
                }
                    catch(Exception ex)
                    {
                        LoggerHelper.Instance.LogError(ex);
                        
                    }
                

                IsStop = true;
                }
            }
            catch (Exception ex)
            {
                LoggerHelper.Instance.LogError(ex);
             
            }

Пожалуйста, помогите мне с этим, заранее спасибо.

...