D
Dan Holmes
Would someone be kind enough to read this code and offer opinions about it? This code is in a service if that matters.
protected override void OnStart(string[] args)
{
try
{
eventLog1.Log = "Application";
eventLog1.Source = "RSEService";
int port = Properties.Settings.Default.Port;
listener = new SNS.TcpListener(port);
listener.Start();
listener.BeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpClientCallback), listener);
}
catch (Exception ex)
{
}
}
private void DoAcceptTcpClientCallback(IAsyncResult ar)
{
try
{
SNS.TcpListener listener = (SNS.TcpListener)ar.AsyncState;
SNS.TcpClient clientSckt = listener.EndAcceptTcpClient(ar);
listener.BeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpClientCallback), listener);
byte[] readbuffer = new byte[Initial_Buffer_Size];
SNS.NetworkStream ns = clientSckt.GetStream();
StringBuilder message = new StringBuilder();
while (true)
{
int bytesread = ns.Read(readbuffer, 0, readbuffer.Length);
if (bytesread == 0) break;
message.Append( Encoding.UTF8.GetString(readbuffer, 0, bytesread-1));
}
if (message.Length > 0)
{
string answer = ProcessQuestion(message.ToString());
if (ns.CanWrite)
{
byte[] writebuffer = Encoding.UTF8.GetBytes(answer);
ns.Write(writebuffer, 0, writebuffer.Length);
}
else
eventLog1.WriteEntry("Couldn't write");
}
clientSckt.Client.Disconnect(true);
clientSckt.Close();
}
catch (Exception ex)
{
eventLog1.WriteEntry(ex.ToString(), EventLogEntryType.Error);
}
}
protected override void OnStart(string[] args)
{
try
{
eventLog1.Log = "Application";
eventLog1.Source = "RSEService";
int port = Properties.Settings.Default.Port;
listener = new SNS.TcpListener(port);
listener.Start();
listener.BeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpClientCallback), listener);
}
catch (Exception ex)
{
}
}
private void DoAcceptTcpClientCallback(IAsyncResult ar)
{
try
{
SNS.TcpListener listener = (SNS.TcpListener)ar.AsyncState;
SNS.TcpClient clientSckt = listener.EndAcceptTcpClient(ar);
listener.BeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpClientCallback), listener);
byte[] readbuffer = new byte[Initial_Buffer_Size];
SNS.NetworkStream ns = clientSckt.GetStream();
StringBuilder message = new StringBuilder();
while (true)
{
int bytesread = ns.Read(readbuffer, 0, readbuffer.Length);
if (bytesread == 0) break;
message.Append( Encoding.UTF8.GetString(readbuffer, 0, bytesread-1));
}
if (message.Length > 0)
{
string answer = ProcessQuestion(message.ToString());
if (ns.CanWrite)
{
byte[] writebuffer = Encoding.UTF8.GetBytes(answer);
ns.Write(writebuffer, 0, writebuffer.Length);
}
else
eventLog1.WriteEntry("Couldn't write");
}
clientSckt.Client.Disconnect(true);
clientSckt.Close();
}
catch (Exception ex)
{
eventLog1.WriteEntry(ex.ToString(), EventLogEntryType.Error);
}
}