Bonjour, j'envoie un message à un équipement via UDP sur le port 40960 et je suis censé avoir une réponse sur le port 40963
Sur wireshark je vois bien l'envoie de message et la Réponse
Mon Code
Le code se plante sur cette ligne sans aucun message d'erreur ni exception et sans remplir le tableau avec les donnée non plus
Code : 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
20
21
22
23
24
25
26
27
28
29 public IPEndPoint sendEndPoint; public void senderUdpClient() { string serverIP = "192.168.2.11"; int sendPort = 40960; int receivePort = 40963; UdpClient senderClient = new UdpClient(); sendEndPoint = new IPEndPoint(IPAddress.Parse(serverIP), sendPort); try { senderClient.Connect(this.sendEndPoint); senderClient.Send(packedMessage2, packedMessage2.Length); //IPEndPoint object will allow us to read datagrams sent from any source. IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse(serverIP), receivePort); Thread.Sleep(5000); // Blocks until a message returns on this socket from a remote host. Byte[] receiveBytes = senderClient.Receive(ref RemoteIpEndPoint); string returnData = Encoding.ASCII.GetString(receiveBytes); senderClient.Close(); MessageBox.Show("Message Sent"); } catch (Exception err) { MessageBox.Show(err.ToString()); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part Byte[] receiveBytes = senderClient.Receive(ref RemoteIpEndPoint);
y'a t'il quelque chose qui manque à mon code ? j'ai essayé de desactiver le firewall mais ça n'a rien changé
Mise à jour!
j'ai essayé également de créer un UDPClient pour l'envoie et un autre pour la reception
Code : 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
20
21 public void senderUdpClient() { string serverIP = "192.168.2.11"; int sendPort = 40960; int receivePort = 40963; UdpClient senderClient = new UdpClient(); sendEndPoint = new IPEndPoint(IPAddress.Parse(serverIP), sendPort); try { senderClient.Connect(this.sendEndPoint); senderClient.Send(packedMessage2, packedMessage2.Length); senderClient.Close(); MessageBox.Show("Message Sent"); } catch (Exception err) { MessageBox.Show(err.ToString()); } }
Code : 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 public void readerUdpClient() { string serverIP = "192.168.2.11"; int receivePort = 40963; try { var remoteEP = new IPEndPoint(IPAddress.Parse(serverIP), receivePort); UdpClient readerClient = new UdpClient(); readerClient.Connect(remoteEP); byte[] bytesReceived = readerClient.Receive(ref remoteEP); } catch (Exception err) { MessageBox.Show(err.ToString()); } }
et j'ai utilisé les sockets C#
Code : 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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 public void senderUdpClient() { string serverIP = "192.168.2.11"; int sendPort = 40960; int receiport = 40963; try { // Create socket Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); // Bind IPEndPoint myEP = new IPEndPoint(IPAddress.Any, 0); s.Bind(myEP); // Send it IPEndPoint sEP = new IPEndPoint(IPAddress.Parse(serverIP), sendPort); int res = s.SendTo(packedMessage2, sEP); // Receive the response byte[] receiveBytes = new Byte[1024]; EndPoint recEP = new IPEndPoint(IPAddress.Parse(serverIP), receiport); res = s.ReceiveFrom(receiveBytes, ref recEP); Console.WriteLine("We've got some data from the server!!! " + res + " bytes."); } catch (Exception e) { Console.WriteLine("ERROR: " + e.ToString()); } }
Aucun des trois code marche pour moi et toujours il se bloque dans la ligne ou je remplis le tableau avec les données reçu et pareil pour Wireshark également je vois toujours un message envoyé et un message reçu comme montre la photo
quelqu'un aurait une explications svp
Partager