- 论坛徽章:
- 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);
发送端:
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);
}
先打开接受端,再打开发送端,recvfrom返回SOCKET_ERROR,顺序反过来先开接受端就没问题,问一下怎么回事? |
|