Я успешно могу подключиться к сокету 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
}
}