![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
tstr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.5.2009 Репутация: нет Всего: нет |
Здравствуйте!
Кто как делает проверку состояния при создании сокетов? Как лучше ![]()
Кто что думает по этому поводу? Спасибо ![]() |
|||
|
||||
Andrew121 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 21.6.2009 Репутация: нет Всего: 1 |
4 вариант.
|
|||
|
||||
tstr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.5.2009 Репутация: нет Всего: нет |
А почему именно 4?
Так надежней? Хотел бы услышать обоснования выбора. Я думаю так: ведь функция может вернуть и не -1, а другое отрицательное число, поэтому лучше писать (0 > x), а переменная errno может быть случайно перезаписана. Это сообщение отредактировал(а) tstr - 28.6.2009, 05:48 |
|||
|
||||
Олег2005 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
||||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
http://msdn.microsoft.com/en-us/library/ms740506(VS.85).aspx
Добавлено через 3 минуты и 43 секунды вариант 2 |
|||
|
||||
tstr |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.5.2009 Репутация: нет Всего: нет |
Время познее было - очепятался.. ![]()
Надо не виндовый сокет, поэтому WSAGetLastError не поможет. Но вот что я заметил, заглянув в /usr/src/sys/sys/errno.h:
Получается, что переменная errno может быть установлена в значение, например, 23 и, видимо лучшим для отлова ошибки при создании сокета будут варианты проверок 2 и 4, а для поиска конкретной причины ошибки, сравнивать переменную errno с предопределенными в /usr/src/sys/sys/errno.h константами с помощью какого-нить switch-case... Что скажете? Это сообщение отредактировал(а) tstr - 29.6.2009, 15:39 |
||||||
|
|||||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
|
|||
|
||||
Олег2005 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
В профессиональной программе надо проверять АБСОЛЮТНО все возможные ошибки!
В том числе и при создании сокета. Проще сделать обертку для каждой сетевой функции - ну а внутри switch очень даже...... |
|||
|
||||
tstr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 3.5.2009 Репутация: нет Всего: нет |
Так и буду делать. Спасибо ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |