こんにちは私はサーバーが接続ピアへのIPとポートを交換するための仲介者となるP2Pチャットアプリケーションを実装しています。WSAEAFNOSUPPORT10047エラーが発生します。
UDPソケットを作成しました
sockfd = socket(AF_INET、SOCK_DGRAM、IPPROTO_UDP); 次に、それをローカルIPとポートにバインドするiam。
if(bind(sockfd、(struct sockaddr *)&localaddr、sizeof(localaddr))<0){Error_Code( "create_socket:bind()"); -1を返します。}
それから私はサーバーに連絡しています。
//サーバーに接続します
sendto(sockfd、pBuffer、sizeof(nMessageType)、0、(const sockaddr *)&config.serverAddr、size);
サーバーは、接続されている他のピアを追跡します。ピアがサーバーに接続すると、他のピアのIPとポートを返します。そのため、ピアはIPとポートを使用して他のピアに直接接続できます。しかし、他のピアにデータを送信しているときにエラーが発生します
//データをピアに送信
int ret = sendto(sockfd、sendBuf、sizeof(nMessagetype)、0、(const sockaddr *)&m_peer.publicaddr、sockAddLen); 10047WSAEAFNOSUPPORTエラーを返します。
ここで私はサーバーと他のピアに接続するために同じソケットを使用していますが、これはこの理由ですか?ここで何が悪いのかわかりません。サーバーとは正しく接続できますが、他のピアとの接続に失敗しています。