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
Nom : Capture.JPG
Affichages : 129
Taille : 61,7 Ko


Mon Code

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());
            }
        }
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
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