пишет тимед оут Код (Text): wsadata WSADATA <> server db "google.ru",0 msg db "OLEH servername" succ db "succsess",0 extms db "exiting",0 conmsg db "connected",0 ip db "10.64.254.65",0 .data? hsocket dd ? buf dd ? saddr SOCKADDR <> ipnum dd ? .code start: invoke WSAStartup, VERSION1_1, addr wsadata cmp eax, 0 jne exit invoke socket, AF_INET, SOCK_STREAM, IPPROTO_TCP mov hsocket, eax mov saddr.sin_family, AF_INET invoke htons, 80 mov saddr.sin_port, ax invoke gethostbyname, addr server mov eax, dword ptr [eax+12] mov eax,dword ptr [eax] mov saddr.sin_addr, eax ;------ invoke inet_addr, addr ip mov ipnum, eax ;mov saddr.sin_addr, offset ipnum ;------ invoke connect, hsocket, addr saddr,size SOCKADDR invoke WSAGetLastError test eax, eax jnz exit invoke MessageBox,NULL,addr conmsg,NULL,MB_OK invoke send, hsocket, addr msg, 15, 0 invoke recv, hsocket, addr buf, 4, 0 cmp eax, "022" jne skip invoke MessageBox,NULL, addr succ,NULL,MB_OK skip: invoke closesocket, hsocket exit: invoke MessageBox,NULL,addr extms,NULL,MB_OK invoke ExitProcess, 0 end start
Код (Text): invoke gethostbyname, addr server mov eax, dword ptr [eax+12] mov eax,dword ptr [eax] mov eax,dword ptr [eax] ;; !!! add mov saddr.sin_addr, eax
> добавил но теперь даже не пытаясь подключится пишеt error file not found кто пишет? в твоем коде нет таких сообщений. заготовка Код (Text): invoke WSAStartup, 101h, addr wsadata test eax, eax jnz WSAStartup_faled invoke socket, AF_INET, SOCK_STREAM, IPPROTO_TCP cmp eax, INVALID_SOCKET jz socked_failed mov hsocket, eax mov saddr.sin_family, AF_INET invoke htons, 80 mov saddr.sin_port, ax invoke gethostbyname, addr server test eax, eax jz gethostbyname_failed mov eax, dword ptr [eax+12] mov eax,dword ptr [eax] mov eax,dword ptr [eax] mov saddr.sin_addr, eax invoke connect, hsocket, addr saddr, size saddr test eax,eax jnz connect_failed ;; everything is alright ... connect_failed: ... gethostbyname_failed: ... socked_failed: ... WSAStartup_faled: ...
q_q какая разница просто такую ошибку выдаёт (если вазно то отлаживал в оллыдбг и после вызова коннект получаем вышеописанную ошибку)
> отлаживал в оллыдбг и после вызова коннект получаем вышеописанную ошибку Afaik olly показывает LastError, какое отношение она имеет к winsock функциям? Что касается твоего кода, то успешность вызова connect проверяется содержимым eax, если оно не равно нулю, то причину можно узнать вызвав WSAGetLastError, а не как у тебя в коде, сразу после connect вызов WSAGetLastError.