- 论坛徽章:
- 0
|
服务器端 RedHat:
int mySock = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in myAddr;
myAddr.sin_family=AF_INET;
myAddr.sin_port=htons(81);
myAddr.sin_addr.s_addr=INADDR_ANY;
bind(mySock,(sockaddr*)(&myAddr),sizeof(sockaddr));
listen(mySock,5);
int newSock;
sockaddr_in clientAddr;
socklen_t addrLen=sizeof(clientAddr);
char recvBuf[100]={0};
while(1)
{
newSock=accept(mySock,(sockaddr*)(&clientAddr),&addrLen);
recv(mySock,recvBuf,100,0);
printf("%d\n%s\n",strlen(recvBuf),recvBuf);
close(newSock);
}
return 0;
|
客户端 windows :
if((connect(sockClient,(sockaddr*)&addrServ,sizeof(sockaddr)))==SOCKET_ERROR)
{
AfxMessageBox("连接服务器失败!");
return 1;
}
send(sockClient,SendSN,strlen(SendSN)+1,0); |
现象:server打印出的recvBuf长度是0。
抓包:
1、三次握手正常。
2、server --> client (Fin)
3. client --> server (ACK)
4. client --> server (13字节)
好像是recv不阻塞了,直接就执行下面的了。 请问是为什么? |
|