3

私はコードをもっている

*コードスニペット全体で編集

 Dim receivingUdpClient As New UdpClient(20000)

   Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
   Try 

      Console.WriteLine("listening")

      Dim receiveBytes As [Byte]() = receivingUdpClient.Receive(RemoteIpEndPoint)

      Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)

      Console.WriteLine(receiveBytes)

   Catch e As Exception
      Console.WriteLine(e.ToString())
   End Try 

しかし、それは私にエラーを与えます。

system.dll で「system.net.sockets.socketexception」タイプの初回例外が発生しました

これが何を意味するのか本当に混乱しています。

4

2 に答える 2

2

次のコードを試してください

Dim receivingUdpClient As New UdpClient(20000)
Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
Dim receiveBytes As [Byte]()
Dim returnData As String

while ("Your condition")

Try 

  Console.WriteLine("listening")

  receiveBytes = receivingUdpClient.Receive(RemoteIpEndPoint)

  returnData = Encoding.ASCII.GetString(receiveBytes)

  Console.WriteLine(receiveBytes)

Catch e As Exception
  Console.WriteLine(e.ToString())
End Try 

End While
于 2012-09-13T14:06:10.343 に答える
0

アプリケーションのデバッグ中は、例外が発生するたびにデバッガーに通知されます。この時点で、アプリケーションは中断され、デバッガーは例外の処理方法を決定します。このメカニズムを最初に通過することは、「最初のチャンス」例外と呼ばれます。

最初のチャンスの例外メッセージは、ほとんどの場合、コードに問題があることを意味するものではありません。例外を適切に処理するアプリケーション/コンポーネントの場合、最初のチャンスの例外メッセージにより、開発者は例外的な状況が発生し、処理されたことを知ることができます。

例外処理のないコードの場合、デバッガーは 2 回目の例外通知を受け取り、未処理の例外で停止します。

このリンクを確認してください: コンソールをスパムせずにタイムアウトで Socket.ReceiveFrom を処理する

あなたの状況では、ループ内で updClient を宣言すると、次のエラーが発生します。

Only one usage of each socket address (protocol/network address/port) is normally permitted

以下のリンクで解決策を確認できます。または、ループの外側で宣言して、機能するかどうかを確認してください。

http://blogs.msdn.com/b/dgorti/archive/2005/09/18/470766.aspx

于 2012-09-13T10:27:02.777 に答える