UDPClient, envoi et reception sur le même PC

Résolu
kazaam Messages postés 14 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 septembre 2010 - 6 sept. 2010 à 19:48
kazaam Messages postés 14 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 septembre 2010 - 7 sept. 2010 à 15:30
Hello

Je suis en train de développer 2 applis.

un service qui reçoit les messages en UDP
Un exécutable qui envoi des messages en UDP

Le problème c'est qu'une fois le service lancé, impossible de créer le socket pour envoyer des messages, pour VB le socket est deja utilisé.

Ok je veux bien mais comment le réutiliser ou le partager?

Merci
Kazaam

4 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
7 sept. 2010 à 12:37
Bonjour,

Il n'est pas possible de mettre 2x sur écoute le même port sur la même machine.

Par contre il est tout à fait possible d'envoyer et de recevoir sur le même port avec la même machine (même si l'interet semble plutot étrange).

Exemple :
Public Class Form1

    Private udp1 As New UdpClient(1190)
    Private udp2 As New UdpClient()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        udp1.BeginReceive(AddressOf Receive, Nothing)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim buffer() As Byte = {0, 1, 2, 3}
        udp2.Send(buffer, 4, "localhost", 1190)
    End Sub

    Private Sub Receive(ByVal ar As IAsyncResult)
        Dim buffer() As Byte
        Dim ipe As IPEndPoint = Nothing
        buffer = udp1.EndReceive(ar, ipe)
    End Sub

End Class


L'erreur à ne pas faire pour l'envoi et de recréer un UdpClient sur le même port

Private udp1 As New UdpClient(1190)
Private udp2 As New UdpClient(1190)


à ce moment la on génère une erreur.
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 sept. 2010 à 21:21
Bonjour,

Elles doivent se trouver sur des ports différents.
Sinon, test avec 2 machines.

Mon site
0
kazaam Messages postés 14 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 septembre 2010
7 sept. 2010 à 09:52
C'est bien le problème, la machine doit pouvoir émettre et recevoir depuis la même machine et sur le même port

Le truc bizarre, c'est que mon appli ne sait pas envoyer, alors que l'appli sendudp (dispo sur le net) utilise le meme port et envoi bien le message


Kazaam
0
kazaam Messages postés 14 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 septembre 2010
7 sept. 2010 à 15:30
Merci

a voir si je reussi a utiliser dans 2 applis differentes

rien d'étrange, c'est remplaçant a netsend mais par udp (pour des raisons de secu réseau qui elles sont étranges)

Kazaam
0
Rejoignez-nous