Les sockets en vb.net

faresallayl Messages postés 3 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 17 juin 2012 - 29 mai 2012 à 02:01
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 1 juin 2012 à 20:54
j'ai un problème dans mon programme si qlq1 peut m'aider:

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é fournie

voila le code:

pour serveur:

Imports System.Net
Imports System.Net.Sockets

Public Class ServeurTCP

Dim sock As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim sockcon As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim rec As Integer
Dim str As String
Dim A(1000) As Byte
Dim B(1000) As Byte


Private Sub btEcouter_Click(sender As Object, e As EventArgs) Handles btEcouter.Click
If porttext.Text <> "" Then
Dim Adr As New IPEndPoint(0.0, porttext.Text)
sock.Bind(Adr)
sock.Listen(9)
sockcon = sock.Accept()

ChatGroup.Visible = True
btEcouter.Enabled = False
Timer1.Start()
Timer1.Enabled = True
Else
MsgBox("Veuillez spécifier un numéro de port ")
End If


End Sub

Private Sub btArreter_Click(sender As Object, e As EventArgs) Handles btArreter.Click
sock.Close()
sockcon.Close()
End Sub


Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

rec = sock.Receive(B)
If rec Then
str = System.Text.Encoding.ASCII.GetString(B)
messagestext.Text += vbCrLf + "Client : " + str
End If

End Sub

Private Sub btEnvoyer_Click(sender As Object, e As EventArgs) Handles btEnvoyer.Click

A = System.Text.Encoding.ASCII.GetBytes(msgenv.Text + "$")
messagestext.Text += vbCrLf + "Moi : " + msgenv.Text
sock.Send(A)
End Sub
End Class

pour client:

Imports System.Net
Imports System.Net.Sockets


Public Class ClientTCP

Dim sock As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim sockcon As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim str As String
Dim A(1000) As Byte
Dim B(1000) As Byte


Private Sub btEcouter_Click(sender As Object, e As EventArgs) Handles btConnect.Click
If porttext.Text <> "" Or adressetext.Text <> "" Then
sock = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
sock.Connect(adressetext.Text, porttext.Text)
ChatGroup.Visible = True
btConnect.Enabled = False
Timer1.Start()
Timer1.Enabled = True
Else
MsgBox("Veuillez spécifier un numéro de port et/ou l'adresse ")
End If

End Sub

Private Sub btEnvoyer_Click(sender As Object, e As EventArgs) Handles btEnvoyer.Click

A = System.Text.Encoding.ASCII.GetBytes(msgenv.Text + "$")
messagestext.Text += vbCrLf + "Moi : " + msgenv.Text

sock.Send(A)
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

sock.Receive(B)
str = System.Text.Encoding.ASCII.GetString(B)
messagestext.Text += vbCrLf + "Serveur : " + str

End Sub
End Class

et merci d'avance;

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 juin 2012 à 20:54
Bonjour,

Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).

En pas à pas, tu as pu vérifier les valeurs des variables ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]{Point2}[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
Rejoignez-nous