UDP Concurrent клиент recvfrom от ошибки

0

Теперь я выполняю параллельное программирование сокетов с помощью C/C++. Я просто сделал сервер для получения запроса от клиента и отправки пакетов ответов клиентам. Я использую один поток для получения запросов от Клиентов. когда сервер получит новый запрос, будет создан новый поток для отправки некоторых пакетов клиентам. Однако recvfrom на моей стороне клиента всегда возвращает ошибку 10054 winsock, пока мой сервер отправляет пакеты этому конкретному клиенту.

  • 0
    Вы получаете ответ «ICMP port unreachable», вы, вероятно, должны справиться с этим.
Теги:
multithreading
sockets
udp

2 ответа

1

Это сообщение об ошибке означает, что порт udp закрыт, и вы получаете пакет на закрытом порту. Например, в телефоне voip клиент отправляет origport = 12295, заявив, что, пожалуйста, отправьте пакет по этому адресу и закройте рабочий порт 32000 08: 43: 32.377 cip = 172.x.23.225 sip = 10.x.20.2 cport = 32000 sport = 32128 origport = 12295

Но если сервер этого не понимает, и вы все равно получите пакет на 32000 с сервера, тогда клиент отобразит это сообщение об ошибке

0

Согласно этой теме, это безобидная ошибка, и вы можете просто игнорировать ее в клиенте.

  • 0
    Как это игнорировать?> Я все еще получил recvfrom, возвращающее значение -1. Это мой буфер в recvfrom до сих пор получил сообщение, хотя я получил эту ошибку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню