_EventProc proc
local @stSin:sockaddr_in
invoke RtlZeroMemory,addr @stSin,sizeof @stSin
invoke inet_addr,$CTA0("127.0.0.1")
.if eax != INADDR_NONE
mov @stSin.sin_addr,eax
mov @stSin.sin_family,AF_INET
invoke htons,9999 ;端口
mov @stSin.sin_port,ax
invoke connect,hSocket,addr @stSin,sizeof @stSin
.endif
ret
_EventProc endp
_InitSocket proc
local EventWork:WSANETWORKEVENTS
local hEvent
invoke socket,AF_INET,SOCK_STREAM,0
.if eax != INVALID_SOCKET
mov hSocket,eax
invoke WSACreateEvent
mov hEvent,eax
invoke WSAEventSelect,hSocket,hEvent,FD_CONNECT or FD_READ or FD_CLOSE or FD_WRITE
.while TRUE
invoke WSAWaitForMultipleEvents,1,addr hEvent,FALSE,INFINITE,FALSE;INFINITE
invoke WSAResetEvent,hEvent
invoke WSAEnumNetworkEvents,hSocket,hEvent,addr EventWork
.if EventWork.lNetworkEvents == FD_CONNECT
.if EventWork.iErrorCode[FD_CONNECT_BIT] == 0
invoke MessageBox,0,$CTA0("连接成功"),0,0
.else
invoke MessageBox,0,$CTA0("连接失败"),0,0
.endif
.elseif EventWork.lNetworkEvents == FD_READ
invoke MessageBox,0,$CTA0("READ消息"),0,0
.elseif EventWork.lNetworkEvents == FD_CLOSE
invoke MessageBox,0,$CTA0("连接关闭"),0,0
.endif
.endw
.endif
ret
_InitSocket endp
_MainThread proc
local @stWsa:WSADATA,@dwThreadID
invoke WSAStartup,2h,addr @stWsa
invoke CreateThread,NULL,0,offset _InitSocket,NULL,NULL,NULL
invoke CreateThread,NULL,0,offset _EventProc,NULL,NULL,NULL
ret
_MainThread endp
代码如上 高手帮忙看下。错在哪里?这段代码如果连接正常 的确连接到服务器 不会提示任何消息
反而连接不成功会提示连接失败 这是为什么?
[课程]FART 脱壳王!加量不加价!FART作者讲授!