我正在学习汇编并尝试用教育方式编写一个简单的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;但是我无法从服务器应用程序向客户端发送任何内容,反之亦然。