В моей программе на C # есть сервер.Это начинается так:
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, port);
serverSocket.Bind(ipEndPoint);
serverSocket.Listen(10);
serverSocket.BeginAccept(new AsyncCallback(OnAccept), null);
OnAccept:
private void OnAccept(IAsyncResult ar)
{
try
{
Socket clientSocket = serverSocket.EndAccept(ar);
clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None,
new AsyncCallback(OnReceive), clientSocket);
AddLog("підключення", "Спроба нового підключення");
}
catch (Exception ex)
{
AddLog("підключення", "ПОМИЛКА нового підключення. " + ex.Message);
}
serverSocket.BeginAccept(new AsyncCallback(OnAccept), null);
}
И работает отлично ... пока через некоторое время я не нахожу его в автономном режиме.Иногда я вижу ситуацию, когда новые клиенты не могут подключиться, но старые клиенты, которые подключались ранее, все еще подключены.Это случается не часто, поэтому трудно выяснить, в чем причины.
Как мне убедиться, что мой сервер всегда подключен к сети, когда приложение запущено, а мой Интернет подключен?
У меня есть некоторые мысли, но я хотел бы знать, как правильно это сделать.