Я разрабатываю сервер, который предназначен для приема ответа, отправленного телефоном Android, а затем для обработки результата, однако я продолжаю сталкиваться с постоянной проблемой "Существующее соединение было принудительно закрыто удаленным хостом"
Странно, у меня есть приложение чата (сервер / клиент), которое работает отлично.Единственная разница между этим и этим экземпляром состоит в том, что телефон Android подключается к беспроводной точке доступа и передает данные по беспроводной сети, тогда как приложение чата является проводным.
Мой код здесь:
Сервер:
private static void StartServer()
{
TcpListener listener = new TcpListener(IPAddress.Parse(SERVER_IP), PORT_NO);
listener.Start();
while (true)
{
using (TcpClient client = listener.AcceptTcpClient())
{
using (NetworkStream stream = client.GetStream())
{
byte[] buffer = new byte[client.ReceiveBufferSize];
int bytesRead = stream.Read(buffer, 0, client.ReceiveBufferSize);
string dataReceived = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine($"Received: {dataReceived}");
Thread staThread = new Thread(() => PasteText(dataReceived));
staThread.SetApartmentState(ApartmentState.STA);
staThread.Start();
}
}
}
}
Клиент:
private void SendToServer(string resultToSend)
{
using (TcpClient client = new TcpClient(SERVER_IP, PORT_NO))
{
using (NetworkStream stream = client.GetStream())
{
byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(resultToSend);
stream.Write(bytesToSend, 0, bytesToSend.Length);
}
}
}
Есть другие вопросы на эту тему, но мои обстоятельства немного отличаются иболее специализированныйПриведенный выше код скопирован непосредственно с сервера / клиента, который я создал год назад, это было также приложение для Android, и оно работало без проблем.Вот почему это было таким сюрпризом, что код больше не работает правильно.
Кажется, что иногда он работает, а иногда нет.Таким образом, внесение небольшого изменения (например, добавление задержки после подключения клиента) позволит серверу немного поработать, но в конечном итоге перестанет работать.Это может не сработать один день, но на следующий день это будет работать отлично.
У меня есть wireshark, но я не уверен, как интерпретировать пакеты.Вы можете увидеть их здесь, 192.168.0.52 - это IP-адрес телефона Android, а pc021 - это устройство, на котором работает сервер.
Любая помощьБуду признателен, так как я попробовал все другие решения, опубликованные здесь, но они, похоже, не относятся к моей проблеме, кроме сообщения об ошибке того же.