TCP-соединение разорвано, исключение не выдается - PullRequest
0 голосов
/ 24 сентября 2019

Я успешно могу подключиться к сокету localhost (создан с помощью приложения Hercules ).После подключения к сокету я использую приведенный ниже код для непрерывного получения сообщений от сервера localhost.

ПРОБЛЕМА: После успешного подключения к localhost один раз все операторы в приведенном ниже коде ПРОДОЛЖАЙТЕ ИСПОЛНИТЬ, не выдавая никакого исключения , даже если я вручную закрою сервер localhost вручную.

        public void GetMessagesFromDevice() //Thread-t3 uses this
        {
            string messageReceivedFromDevice;

            while (true)
            {
                try
                {
                    //m_DeviceServerStream = m_DeviceClientSocket.GetStream(); //We call this for making connection by thread-t1
                    var buffersize = m_DeviceClientSocket.ReceiveBufferSize;
                    byte[] instream = new byte[buffersize];

                    m_DeviceServerStream.Read(instream, 0, buffersize);
                    messageReceivedFromDevice = System.Text.Encoding.ASCII.GetString(instream);
                    _objLogger.WriteToLog(messageReceivedFromDevice);   
                }
                // Manage of Socket's Exceptions 
                catch (ArgumentNullException ane)
                {
                    _objLogger.WriteToLog(Thread.CurrentThread.Name + ":" + Environment.NewLine + "ArgumentNullException" + ane.ToString());
                }

                catch (SocketException se)
                {
                    _objLogger.WriteToLog(Thread.CurrentThread.Name + ":" + Environment.NewLine + "SocketException " + se.ToString());
                }

                catch (Exception e)
                {
                    _objLogger.WriteToLog(Thread.CurrentThread.Name + ":" + Environment.NewLine + "Unexpected exception : " + e.ToString());
                }
                if (!m_IsConnectedToDevice)
                    Thread.Sleep(1000); //Sleep for 1 second before trying again
            }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...