Проблема с этой ф-цией. Хочу послать датаграмму серверу примерно так: Код (Text): STATSERVERADDR CHAR '127.0.0.1',0 SendStatUDP proc LOCAL hSocket: DWORD LOCAL hAddr: sockaddr_in LOCAL uAddrSize: DWORD invoke socket, AF_INET, SOCK_DGRAM, IPPROTO_IP mov hSocket, eax .if (eax == INVALID_SOCKET) return 0 .endif invoke htons, STATSERVERPORT mov [hAddr.sin_port], ax invoke wsprintf, addr szRemoteAddr, addr szMask1, STATSERVERADDR invoke inet_addr, addr szRemoteAddr mov [hAddr.sin_addr], eax mov [hAddr.sin_family], AF_INET mov uAddrSize, sizeof hAddr invoke sendto, hSocket, IPPORT_PROXY, sizeof IPPORT_PROXY, 0, addr hAddr, addr uAddrSize invoke closesocket, hSocket SendStatUDP endp Но не прокатывает Код (Text): invoke inet_addr, addr szRemoteAddr Что я не правильно делаю. Подскажите плз!!!
.data STATSERVERADDR CHAR '127.0.0.1',0 ... .data? szRemoteAddr db 128 dup (?) ... invoke wsprintf, addr szRemoteAddr, addr szMask1, STATSERVERADDR invoke inet_addr, addr szRemoteAddr Вот... Так почему то не прокатывает! Хотя по идее все верно... Передаю указатель на строку, содержащую dotted IP address как и полагается.... Что же тут не верно?
Вот доработанная версия процы. Все компилится но ф-ция sendto возвращает INVALID_SOCKET! В чем я тут не прав? Код (Text): .data szRemoteAddr db "127.0.0.1",0 ... SendStatUDP proc LOCAL hSocket: DWORD LOCAL hAddr: sockaddr_in LOCAL uAddrSize: DWORD invoke socket, AF_INET, SOCK_DGRAM, IPPROTO_IP mov hSocket, eax .if (eax == INVALID_SOCKET) return 0 .endif invoke htons, STATSERVERPORT mov [hAddr.sin_port], ax invoke inet_addr, addr szRemoteAddr .if (eax == INADDR_NONE) invoke MessageBox, NULL, addr szRemoteAddr, NULL, MB_OK .endif mov [hAddr.sin_addr.S_un.S_addr], eax mov [hAddr.sin_family], AF_INET mov uAddrSize, sizeof hAddr invoke sendto, hSocket, IPPORT_PROXY, sizeof DWORD, 0, addr hAddr, addr uAddrSize .if (eax == SOCKET_ERROR) invoke MessageBox, NULL, addr szRemoteAddr, NULL, MB_OK .endif invoke closesocket, hSocket ret SendStatUDP endp