FASM - Winsock,重新连接问题

时间:2012-01-27 07:43:15

标签: connection client winsock fasm

我正在学习汇编并尝试用教育方式编写一个简单的WinSock应用程序。  虽然大多数情况下一切正常但我在尝试重新连接时遇到问题;

start: 
invoke WSAStartup,200,wsadata
invoke socket,AF_INET,SOCK_STREAM,0
mov [hSock],eax
invoke htons, PORTCONST
mov [sadr.sin_port], ax
mov [sadr.sin_family], AF_INET
invoke  inet_addr, IP
mov [sadr.sin_addr], eax
Connectl:
invoke connect,[hSock], sadr, 16
cmp eax, 0
je Recievel
invoke Sleep, 1000
jmp Connectl
Recievel:
invoke recv, [hSock], spacket, 131, 0
cmp eax, 0
jng Clsl
{Some non-related code}
jmp Recievel
Clsl:
mov [spacket.command],0
invoke CloseSocket, [hSock]
invoke WSACleanUp
invoke Sleep, 4000
jmp start

当我在没有运行服务器应用程序的情况下运行此客户端时,一切都很好,但是当我在运行或关闭服务器应用程序时再次运行它时,我正在变得安静奇怪的问题:  它开始重新连接很多次,并且在某个时间点它成功了#34;但是我无法从服务器应用程序向客户端发送任何内容,反之亦然。

0 个答案:

没有答案