Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
А где спасибо ? :) 28.01.09 15:41 Число просмотров: 1921
Автор: PS <PS> Статус: Elderman
|
> PS, я проделал описанную тобой > процедуру. В результате убедился, что первый запрос от > клиента к серверу одинаков и с прокси и без; ответ сервера > на этот запрос также одинаков с прокси и без. > > Далее, мой прокси перестаёт получать и передавать данные, > вместо этого при обращении к функциям передачи возвращает > нулевую длинну. GetLastError и WSAGetLastError при этом > ошибок не возвращают. > > Если перенести строку > "sockGameClient = accept(sockProxyServer, NULL, NULL);" > в начало цикла, то дело доходит до следующего запроса. Этот > запрос успешно читается от клиента. При попытке передать > этот запрос серверу (send) ошибки не выдаётся, но до > снифера этот пакет не доходит. При последующем вызове recv > выдаётся ошибка 10053 (Программа на вашем хость компьютере > разорвала установленное подключение). > > Я подозреваю, что эта проблема связана с необходимостью > определённым образом использовать функции accept и connect, > но как именно понять не могу.
Для умного:
MSDN
If no error occurs, recv returns the number of bytes received. If the connection has been gracefully closed, the return value is zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.
Для не очень умного:
У тебя соединение разорвано
Для тупого:
Скорей всего твой клиент после получения ответа откоонективается от сервера, а для нового запроса - подрубается.
Совсем для тупого:
Обрабатывай дисконнект от клиента (да и от сервера тоже).
|
|
|