Теперь я выполняю параллельное программирование сокетов с помощью C/C++. Я просто сделал сервер для получения запроса от клиента и отправки пакетов ответов клиентам. Я использую один поток для получения запросов от Клиентов. когда сервер получит новый запрос, будет создан новый поток для отправки некоторых пакетов клиентам. Однако recvfrom на моей стороне клиента всегда возвращает ошибку 10054 winsock, пока мой сервер отправляет пакеты этому конкретному клиенту.
Это сообщение об ошибке означает, что порт 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 с сервера, тогда клиент отобразит это сообщение об ошибке
Согласно этой теме, это безобидная ошибка, и вы можете просто игнорировать ее в клиенте.