Salut les gens et gentes,
J'ai mis en place un système de communication UDP entre deux machines, que j'appellerais ici "Externe" et "Interne". J'avais mis en place une communication UDP de Externe vers Interne et ça fonctionnait parfaitement bien, sauf qu'aujourd'hui j'ai eu besoin d'appliquer le sens inverse.
J'ai donc mis en place un code similaire mais la fonction Receive sur Externe ne reçoit pas les messages d'Interne, malgré leurs réception via WireShark.
Le code côté Externe, qui doit donc recevoir les messages :
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $port = 15556 $endpoint = New-Object System.Net.IPEndPoint ([IPAddress]::Any, 0) $udpclient = New-Object System.Net.Sockets.UdpClient $port Try { While ($true) { $content = $udpclient.Receive([ref]$endpoint) $message = $([Text.Encoding]::ASCII.GetString($content)) write-host $message -ForegroundColor Yellow } } Catch { Write-host $_.exception.Message -ForegroundColor Red } $udpclient.Close()
Le code côté Interne, qui envoie donc des messages :
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $port = 15556 $endpoint = New-Object System.Net.IPEndPoint ([IPAddress]::Parse("$ip"), $Port) $udpclient= New-Object System.Net.Sockets.UdpClient $message = "HELLO" $bytes=[Text.Encoding]::ASCII.GetBytes($message) $bytesSent=$udpclient.Send($bytes, $bytes.length, $endpoint) $udpclient.Close()
Et la réception du message sur Wireshark :
Donc voilà, le message atterri bel et bien sur Externe, mais je ne comprends pas du tout pourquoi Receive() fait la sourde oreille. Enfin, je précise que j'utilise un tout autre port pour la communication dans l'autre sens, le soucis ne doit donc pas venir d'un quelconque conflit.
Merci d'avance.
[EDIT]: Petit apport d'information, de Externe vers Externe en utilisant la configuration "Loopback" pour l'envoie de message et "Any" pour la reception, ça fonctionne, mais évidemment ce n'est pas ce que je recherche.
Partager