Как я могу получить прямой точки ошибка протокола TCP повторное подключение?
# В случае моей коммуникационной программы с ПК и сервером, использующим TCP/IP, я не знаю причины ошибки повторного подключения следующим образом.
1. Один тип протокола TCP/IP сервера а есть программы, которые используют 2 порта 502, 3999 -
502 порта, используемого для приема данных с ПК, 3999 портов, используемых для отправки данных на тот же ПК
2. В программе ПК, с помощью VC++ с использованием библиотеки winsocks, программа countpart сервера на Линукс.
3. Организация Linux-сервера, порт 3999 по поддерживать протокол TCP/IP-параметры.
4. Проблема в том, что когда сервер закрывает сокет с помощью 502 в любое время, и я проверил сигналы Fin/Fin Ack между двумя серверами - ПК и Linux-сервером, проверив wireshark.
5. Другой программы, ПК не может подключиться на порт 502 - который уже закрыт - с одного IP адреса на сервер .
5.Даже если я могу что-то сделать, я не могу повторно подключиться к серверу по тому же ip-адресу и Порту 502.
6. WSAGetLastErrorcode = WSAEISCONN (10056)
7. Образец, который выглядит следующим образом.
int result= inet_pton(AF_INET, "192.168.0.222", / *адрес сервера */, ToServer. sin_addr);
ToServer. sin_port = htons(502);
инт ret_code = подключение(ClientSocket, (структура структуры *)&ампер;ToServer, оператор sizeof(ToServer));
if (ret_code != 0)
{
Сон(10);
retcnt++;
ret_code = WSAGetLastError();
if (ret_code == WSAEISCONN)
{
AfxMessageBox(_T ("ошибка подключения. Уже связывание с другим процессом."));
Гото выход;
...
8. Наконец, вопрос :
Один сервер, использующий два порта, закрывает только один TCP-порт, другое внешнее приложение не может подключить закрытый тот же порт
Где же недостающие точки?
Заранее благодарю вас,
Что я уже пробовал:
Я потратил впустую 2 месяца долгого времени, чтобы решить эту проблему.