您好!
我正在实现P2P聊天应用程序,在该应用程序中,服务器将通过中介交换IP和端口来连接对等机。
我收到wsaeafnosupport 10047错误。
我已经创建了UDP
插座
sockfd=插座(af_inet、sock_dgram、ipproto_udp);
然后IAM将其绑定到本地IP和端口。
if(bind(sockfd,(struct sockaddr*)&localaddr,sizeof(localaddr))<0)
{
错误_code(“create_socket:bind()”);
返回-1;
}
然后我联系服务器。
//连接服务器
sendto(sockfd,pbuffer,sizeof(nmessagetype),0,(const sockaddr*)和config.serveradr,size);
服务器跟踪另一个连接的对等端。一旦对等端连接到服务器,它将返回其他对等端的IP和端口。因此,对等端可以使用IP和端口直接连接到其他对等端。
但我在向其他对等发送数据时出错
//向对等端发送数据
int ret=发送到(sockfd,sendbuf,
sizeof(nmessagetype),0,(const sockaddr*)&m_peer.publicaddr,sockaddlen);
返回10047 WSAEAFNOSUPPORT错误。
在这里,我使用相同的套接字来联系服务器和其他对等机,这是为什么?
我不明白这里出了什么问题。
它能够正确地连接到服务器,但无法连接到其他对等机。