Ищем базовый канал UDP или перенаправитель. Должен, конечно, быть в состоянии увидеть оба
клиент 2 сервер и сервер 2 данные клиента.
Вот то, что я пытался, но это не удалось, потому что я не знаю, когда звонить, который получает ..
Скажи, что я звоню
data = serverUdpClient.Receive(sender)
тогда я должен перенаправить это, поэтому я называю это
clientUdpClient.Send(data, data.Length)
Теперь следует строка после, которая является правильной в TCP Pipe.
data = clientUdpClient.Receive(sender)..
Но я должен .. позвонить еще раз ..
data = serverUdpClient.Receive(sender)
clientUdpClient.Send(data, data.Length)
прежде чем я смогу использовать
data = clientUdpClient.Receive(sender)..
Практически весь поток кода трахается ... потому что сокет блокируется. Когда я начал работать над UDP ... все примеры говорят о том, что держитесь подальше от неблокирования, так как это слишком сложно для того, чтобы новичок пытался работать с сетевыми сокетами ... Я считаю это утверждение неправильным ... наоборот!.
Public serverUdpClient As System.Net.Sockets.UdpClient
Public clientUdpClient As System.Net.Sockets.UdpClient
Sub runProxy()
If serverUdpClient IsNot Nothing Then
serverUdpClient.Close()
serverUdpClient = Nothing
End If
If clientUdpClient IsNot Nothing Then
clientUdpClient.Close()
clientUdpClient = Nothing
End If
Try
'Listen for incoming udp connection request.
serverUdpClient = New UdpClient(New IPEndPoint(IPAddress.Any, Int32.Parse(Int(txtListeningPort.Text))))
WriteLog("Server started at: " + txtListeningPort.Text)
Dim data As Byte() = New Byte(1023) {}
Dim sender As IPEndPoint = New IPEndPoint(IPAddress.Any, 0)
While True
data = serverUdpClient.Receive(sender)
'Connect to server.
If clientUdpClient Is Nothing Then
clientUdpClient = New UdpClient(txtIP.Text, Int32.Parse(Int(txtListeningPort.Text)))
clientUdpClient.Connect(txtIP.Text, Int32.Parse(Int(txtListeningPort.Text)))
End If
clientUdpClient.Send(data, data.Length)
data = clientUdpClient.Receive(sender)
serverUdpClient.Send(data, data.Length)
End While
Catch ex As Exception
WriteLog("Errors at runProxy @ " + ex.Message)
End Try
End Sub
Также попробовал это .. не работает должным образом.
While True
If serverUdpClient.Available > 0 Then
data = serverUdpClient.Receive(sender)
'Connect to server.
If clientUdpClient Is Nothing Then
clientUdpClient = New UdpClient(txtIP.Text, Int32.Parse(Int(txtListeningPort.Text)))
clientUdpClient.Connect(txtIP.Text, Int32.Parse(Int(txtListeningPort.Text)))
End If
clientUdpClient.Send(data, data.Length)
End If
If clientUdpClient.Available > 0 Then
data = clientUdpClient.Receive(sender)
serverUdpClient.Send(data, data.Length)
End If
End While