Давно хотел разобраться с сетевыми апи , много раз начинал но времени небыло особо изучать . Сейчас оно появилось . Почитал msdn вроде все верно написал , но с сервером не соединяется ... делаю wsagetlasterror получаю код connection refused . В то же время через мирку норм заходит на сервер . Код (Text): .386 .model flat, stdcall option casemap:none include bin\inc\windows.inc include bin\inc\user32.inc include bin\inc\kernel32.inc include bin\inc\wsock32.inc includelib bin\lib\user32.lib includelib bin\lib\kernel32.lib includelib bin\lib\wsock32.lib .data port dd 6667h IP db "192.168.0.199",0 msgNick db "nick asmBOT",10,13 msgUser db "user q w e@test.com f",0 .data? sHandle dd ? _wsadata WSADATA < > _sockaddr sockaddr_in < > .code OEP: invoke WSAStartup,101h,offset _wsadata mov ax,101h cmp ax,word ptr [_wsadata.wVersion] jne @Exit invoke socket,AF_INET,SOCK_STREAM,0 cmp eax,-1 je @Exit mov sHandle,eax mov ax,AF_INET mov _sockaddr.sin_family,ax invoke htons,port mov _sockaddr.sin_port,ax invoke inet_addr,offset IP mov _sockaddr.sin_addr,eax invoke connect,sHandle,offset _sockaddr,sizeof _sockaddr cmp ax,-1 je @Exit mov eax,sizeof msgNick add eax,sizeof msgUser invoke send,sHandle,offset msgNick,eax,0 cmp ax,-1 je @Exit invoke Sleep,30000h @Exit: invoke WSAGetLastError invoke ExitProcess,0 end OEP
Для начала напиши прогу так, чтобы было понятно, какая именно функция тебя выбрасывает на @Exit: WSAStartup,socket или send. Логически, конечено, понятно, что функция connect, но всё-же. Это во-первых. Во-вторых, у irc порт=6667. А у тебя порт=26215, так как в шестнадцеричной системе обозначен. Попробуй заменить 6667h на 6667 или на 6667d (Я не помню точно, какое у вас, у ассемблерщиков, обозначение десятеричной системы) и снизайдет на тебя божья благодать