私はウェブで解決策を探していますが、運はありません。ローカルコンピュータからのUDPソケット、エラーコード10049
私たちはソケットを作り、データを送受信できます。クライアントとサーバーの両方のバージョンは、クライアントとサーバーとして動作しています。問題は、クライアントサーバーのバージョンIPがNATを使用するネットワーク上にあることです。つまり、サーバーがパブリックIPを持っているため、サーバーがメッセージを受信しようとしているときにパブリックIPがあり、解決策を見つけることができないデータを受け取る方法については、
SetIPProtectionLevelは無制限なので、動作するはずです。
ありがとうございました。
私たちは、サーバーバージョンのipをローカルに変更してから、クライアントからパブリックサーバーipに送信しようとしましたが、運がありません。
ローカルクライアントIPからローカルサーバIPへは動作しています。
うまくいくはずです。 10049エラーは間違ったアドレスを使用していることを意味します。問題がそのエラーコードを取得している場合は、コード内に見つけて修正する必要があるバグが原因です。どのような操作でそのエラーが発生していますか?その操作で渡すパラメータは何ですか? –
ここにサーバーコードが表示されます。 SN =新しいソケット(AddressFamily.InterNetwork、SocketType.Dgram、ProtocolType.Udp); IPEndPoint IEP =新しいIPEndPoint(IP、ポート)。 SN.SetIPProtectionLevel(IPProtectionLevel.Unrestricted); SN.Bind(IEP); IPEndPoint IPS =新しいIPEndPoint(IPAddress.Parse( "[my ip]")、2000); エンドポイントEP =(エンドポイント)IPS; SN.BeginReceiveFrom(BR、0、BR.Length、SocketFlags.None、ref EP、新しいAsyncCallback(OnReceive)、EP); –
これはサーバーでは機能しません! UDPパケットを受信するまではIP /ポートを知ることができず、ソケットを設定するまでUDPパケットを受信することはできません!相手のIPとポートを知る前に、最初のUDPパケットを受信する前にバインドする必要があります。 –