- 論壇徽章:
- 0
|
還是貼代碼吧!
接受端:
SOCKET sockSer = socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN sa;
int len = sizeof(SOCKADDR);
char recvbuf[10];
sa.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
sa.sin_family = AF_INET;
sa.sin_port = htons(4545);
bind(sockSer,(SOCKADDR*)&sa,len);
SOCKADDR_IN addRecv;
int i=0;
int rval;
while(1)
{
rval = recvfrom(sockSer,recvbuf,10,0,(SOCKADDR*)&addRecv,&len);
if(rval==SOCKET_ERROR)
{
cout<<"SOCKET_ERROR!"<<endl;
}
cout<<recvbuf<<endl;
}
closesocket(sockSer);
發(fā)送端:
SOCKET sock = socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN sa;
int len = sizeof(SOCKADDR);
sa.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sa.sin_family = AF_INET;
sa.sin_port = htons(4545);
bind(sock,(SOCKADDR*)&sa,len);
char sendbuf[] = "Hello";
while(true)
{
sendto(sock,sendbuf,6,0,(SOCKADDR*)&sa,len);
}
先打開接受端,再打開發(fā)送端,recvfrom返回SOCKET_ERROR,順序反過來先開接受端就沒問題,問一下怎么回事? |
|