Bonjour,
j’essaie de créer une application client/serveur pour effectuer des actions à distance (dans un premier temps en local). J'ai donc crée ce code pour le client :
Ainsi que le code suivant pour le serveur :
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 Sub Connexion() Dim port As String = "8080" Dim ip As String = "127.0.0.1" Dim MonSocketClient As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) Dim MonEP As IPEndPoint = New IPEndPoint(IPAddress.Parse(ip), 8080) MonSocketClient.Connect(MonEP) Dim MesBytes(255) As Byte Dim BytesRecus As Integer = MonSocketClient.Receive(MesBytes) Dim MonString As String = System.Text.Encoding.ASCII.GetString(MesBytes) MsgBox(MonString) MonSocketClient.Close() End Sub Private Sub FormClient_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim ThreadConnexion As New Threading.Thread(AddressOf Connexion) ThreadConnexion.Start() End Sub
Donc le but est de faire apparaitre un messagebox sur mon client avec le texte que le serveur a envoyé. Le problème c'est que lorsque j'envoie les Bytes avec mon serveur, j'obtiens l'erreur suivante :
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 Sub Connexion() Dim port As String = "8080" Dim ip As String = "127.0.0.1" Dim MonSocketServeur As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) Dim MonEP As IPEndPoint = New IPEndPoint(IPAddress.Parse(ip), 8080) MonSocketServeur.Bind(MonEP) 'Lie le socket à cette IP MonSocketServeur.Listen(1) 'Se met en mode écoute Dim SocketEnvoi As Socket = MonSocketServeur.Accept() 'Bloquant tant que pas de connexion Dim MesBytes As Byte() = System.Text.Encoding.ASCII.GetBytes("Bonjour") Dim BytesEnvoyes As Integer = MonSocketServeur.Send(MesBytes) MonSocketServeur.Close() End Sub Private Sub FormServeur_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim ThreadConnexion As New Threading.Thread(AddressOf Connexion) ThreadConnexion.Start() End Sub
à la ligne :Une requête d’envoi ou de réception de données n’a pas été autorisée car le socket n’est pas connecté et (lors de l’envoi sur un socket datagramme en utilisant un appel sendto) aucune adresse n’a été fournieJ'ai vu que l'on pouvait mettre des arguments de mémoire tampon avec la commande Send mais dans l'exemple que j'ai trouvé, il n'y a aucun paramètre supplémentaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim BytesEnvoyes As Integer = MonSocketServeur.Send(MesBytes)
Quelqu'un saurait-il d'où vient le problème ?
Merci.
Partager