private void DoAcceptTcpClientCallback(IAsyncResult ar)
{
try
{
// Get the listener that handles the client request.
var listener = (TcpListener)ar.AsyncState;
listener.BeginAcceptTcpClient(DoAcceptTcpClientCallback, listener);
if (client != null && client.Connected)
return;
// End the operation and display the received data on
// the console.
using (
client = listener.EndAcceptTcpClient(ar))
{
var stream = client.GetStream();
if (!comport.IsOpen)
comport.Open();
while (client.Connected && comport.IsOpen)
{
while (stream.DataAvailable)
{
var data = new byte[4096];
try
{
var len = stream.Read(data, 0, data.Length);
comport.Write(data, 0, len);
}
catch
{
}
}
while (comport.BytesToRead > 0)
{
var data = new byte[4096];
try
{
var len = comport.Read(data, 0, data.Length);
stream.Write(data, 0, len);
}
catch
{
}
}
Thread.Sleep(1);
}
}
}
catch
{
}
}