Тема: ASM Winsock 1.1
Показать сообщение отдельно

  #3  
Старый 14.11.2009, 16:42
Sams
Участник форума
Регистрация: 18.04.2009
Сообщений: 120
Провел на форуме:
435863

Репутация: 80
По умолчанию

Проблема решена. Ошибка была в том, что отсылал данные не туда. Не доглядел функцию connect, и какое значение она возвращает. Как говориться: "Пальцем в небо"
Вот собственно ошибка:

Цитата:
invoke connect, hSock, ADDR sin, sizeof sin
.if eax==SOCKET_ERROR
invoke MessageBoxA, 0, ADDR mText2, ADDR mCaption, 0
jmp Quit
.endif
mov hSock2, eax

invoke send, hSock2, ADDR buffer, sizeof buffer, 0
.if eax==SOCKET_ERROR
invoke MessageBoxA, 0, ADDR mText3, ADDR mCaption, 0
jmp Quit
.endif
Я отсылал данные на хендл hSock2, который был получен в следствии выполнения функции connect.

Цитата:
mov hSock2, eax
Хотя данная функция возвращает совсем другое значение (видать я перепутал с функцией accept() )

Правильно будет так:

Цитата:
invoke connect, hSock, ADDR sin, sizeof sin
.if eax==SOCKET_ERROR
invoke MessageBoxA, 0, ADDR mText2, ADDR mCaption, 0
jmp Quit
.endif

invoke send, hSock, ADDR buffer, sizeof buffer, 0
.if eax==SOCKET_ERROR
invoke MessageBoxA, 0, ADDR mText3, ADDR mCaption, 0
jmp Quit
.endif
Тему можно закрывать.
 
Ответить с цитированием