|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.03.2015, 09:40 | #1 |
Регистрация: 12.03.2015
Сообщений: 3
|
Влияник htons на socket
Согласно WinAPI перед функцией htons не обязательно выполнять WSAStartup. Тут согласен - все в порядке.
Сначала я столкнулся с тем что bind выдавал ошибку, пока я не вызвал htons. Я не использовал результат htons. Просто тупо вызов и все - после этого bind волшебным образом работает. Попытка разобраться с ситуацией привела к еще более интересным результатам. Так вызов htons перед WSAStartup - вызывает сбой WSAStartup (на XP) и Socket (Win7). Например: Код:
Кто - нибудь может объяснить, что происходит? Последний раз редактировалось Stilet; 17.03.2015 в 09:57. |
17.03.2015, 13:40 | #2 |
Регистрация: 12.03.2015
Сообщений: 3
|
Разобрался:
Код:
Теперь хоть invoke не используй. Ручками надо все писать. Всем спасибо, вопрос закрыт. |
17.03.2015, 14:34 | #3 | ||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
18.03.2015, 09:01 | #4 | |
Регистрация: 12.03.2015
Сообщений: 3
|
port - слово (dw)
делаю invoke htons, port в дебагере Код:
Цитата:
Я не знал, что выравнивание на границу двойного слова имеет такое большое значение. Простой push ax (или любое смещение стека на 2 байта) в начале любой программы - делает её практически неработоспособной. (Сбоит WinAPI) мало, но такой ошибки я бы не допустил. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
htons - не берёт порт из структуры | frommars | C/C++ Сетевое программирование | 2 | 05.03.2013 14:03 |
Socket | IGOMERL | C++ Builder | 1 | 16.03.2011 11:05 |
Socket'ы | Mu$T@nG | Помощь студентам | 4 | 19.07.2010 20:58 |
Socket | Djem1991 | Работа с сетью в Delphi | 6 | 03.07.2009 23:45 |
socket | Артэс | C/C++ Сетевое программирование | 2 | 22.06.2009 17:22 |