![]() |
|
Модераторы: feodorv |
![]()
|
|
| zss |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
я пытаюсь передавать данные и проверяю результат на
аналогично и для чтения данных. Но в данной ситуации не совсем понятно когда данные просто не удалось передеть по какой-то причине и требуется повтор И когда соединение разорвано и нужно его заново устанавливать. Как определить разрыв ? P.S. И что думать, если например число запрошенных байт не совпадает с числом принятых. Тоесть верно ли
|
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
Читай документацию на send. В частности, значения errno
|
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
WSAGetLastError?
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
странно, но например для recv я не нашел errno - есть только WSAGetLastError.
Кстати вот список
теоритически мне подходит WSAENETRESET WSAESHUTDOWN WSAECONNABORTED WSAETIMEDOUT WSAECONNRESET я ничего не упустил ? |
|||
|
||||
| zss |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
в MSDN есть пример, в котором проверка на
думаю этого достаточно. Но вот меня смутило описание для send
Это как ? Как тогда - цикл крутить пока не отправилось ? И нужно ли это для recv или только для send ? |
||||
|
|||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: нет Всего: 5 |
bytesRecv == WSAECONNRESET - это имхо ересь. Надо WsaGetLastError()==WSAECONNRESET
Но на самом деле достаточно проверять (bytesRecv == 0) || (bytesRecv == SOCKET_ERROR) Для протокола TCP не может быть такой ситуации, на прикладном уровне ты не должен об этом задумываться. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |