Новый пользователь на сайте здесь.
Я работаю на простом асинхронном tcp-сервере.Мой слушатель подключения выглядит следующим образом.
public static bool Listen(int port)
{
try
{
IPEndPoint ep = new IPEndPoint(IPAddress.Any, port);
listener = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(ep);
listener.Listen(4);
listener.BeginAccept(new AsyncCallback(AcceptCallback), listener);
return true;
}
catch (Exception e)
{
Console.WriteLine("Unknown exception: {0}", e.ToString());
return false;
}
}
private static void AcceptCallback(IAsyncResult res)
{
try
{
Socket listener = (Socket)res.AsyncState;
Socket inSocket = listener.EndAccept(res);
Console.WriteLine("Accepted handle: {0}", inSocket.Handle);
listener.BeginAccept(new AsyncCallback(AcceptCallback), listener);
}
catch (SocketException se)
{
Console.WriteLine("SocketException: {0}", se.ErrorCode);
}
catch (Exception e)
{
Console.WriteLine("Unknown exception: {0}", e.ToString());
}
}
В большинстве случаев он работает нормально, но иногда слушатель.Он имеет код ошибки 10054. Ошибка продолжает возникать при каждой попытке подключения, пока я не перезапущу прослушиватель.В чем может быть проблема?
Также дополнительный вопрос, на что я должен установить свое отставание?