2016-10-20 12 views
0

私はポップアップウィンドウのように機能する小さなフォーム(FORM2)を持っています。それは引数としてIPAddressをとり、それに接続します。以下のコードは、接続IPEndpointバインドを削除する

myNewUDP.newUDPClient = new UdpClient(); 
myNewUDP.newEP  = new IPEndPoint(IPAddress.Parse("255.255.255.255"), PORT); 
IPEndPoint newBindEP = new IPEndPoint(IPAddress.Any, PORT); 

//Set port to listen to 
myNewUDP.newUDPClient.Client.Bind(newBindEP);          

私はそれが正しくデバイスに接続する初めてのポップ呼び出しを示しています。しかし、それ以降の呼び出しでは、「各ソケットアドレスの1つの使用しか許可されていません」という例外がスローされます。どうすればこの問題を解決できますか? IPとポートバインドを閉じる方法はありますか?

答えて

1

を接続すると、いくつかの他のエンドポイントへの接続を意味します。ここにはというバインドがあります。つまり、自分でプロトコル/ port/ipを予約しています。ソケット上のバインドコールClose()を削除するには

また、Bind()を基になるソケットで直接呼び出しているため、UdpClientもちょっと不思議です。あなたはただ普通のSocketを使うことができます。または、実際のUdpClientを使用してすべてを処理できます。

+0

私が二度目に私のポップアップを呼び出すと、メッセージが送信されていません。単にUdpClientを閉じるとこれが解決されますか? – Abin

+0

私はform2 closingイベント中にmyNewUDP.newUDPClient.Close()を実行しようとしましたが、同じエラーが生成されます。 'myNewUDP.newUDPClient.Client.Close(約 – Abin

+0

@Abinそして、何)'あなたが直接、基本的なソケットでつついているので、? –

関連する問題