wm198876
Messages postés6Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention 1 novembre 2007
-
25 oct. 2007 à 16:20
wm198876
Messages postés6Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention 1 novembre 2007
-
27 oct. 2007 à 12:54
Bonjour,
Je suis actuellement en BTS d'informatique de gestion et j'ai un morpion à programmer en socket en VB gràce à Visual Basic 2005.
Je suis loin du résultat. ^^
Je suis pour le moment en train de tester la connexion winsock en local afin de transmettre un X d'un client vers un serveur et de l'afficher dans une TxtCase gràce aux méthodes send et receive de la classe socket. Cependant j'ai un problème que je ne comprend pas. Je peux connecter le client au serveur sans problèmes? Je peux envoyer des données du serveur jusqu'au client sans problèmes (d'après ce que je vois), par contre, je n'arrive pas à recevoir les donnéesdepuis le serveur gràce à méthode receive. Voici mon code
Coté Serveur :
Imports
System
Imports
System.Text
Imports
System.IO
Imports
System.Net
Imports
System.Net.Sockets
Public
Class Form1
Dim socket
As
New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)
Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Loadsocket.Bind(
New IPEndPoint(IPAddress.Parse(
"127.0.0.1"), 50000))
End
Sub
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Clicksocket.Listen(5)
socket.Accept()
Recept()
End
Sub
Private
Sub Recept()
Dim Message
As
Byte() = System.Text.Encoding.ASCII.GetBytes(
"")
wm198876
Messages postés6Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention 1 novembre 2007 25 oct. 2007 à 16:25
Désolé pour l'espacement entre les phrases et le manque d'indentation de mon code c'est mon premier post sur ce site je ne maitrise pas encore tout a fait le traitement de texte. ^^
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 25 oct. 2007 à 17:19
Oula... pas facile à lire :/
Pis des morpions dans les sockets... fo les poudrer ^^
Bizzare pourtant, ton code me semble correct, tu as bien fait le listen et sur la bonne socket...
wm198876
Messages postés6Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention 1 novembre 2007 27 oct. 2007 à 12:54
Je remet mon code de manière plus lisible afin que ce soit plus compréhensible ^^ :
Coté Serveur :
Imports
System
Imports
System.Text
Imports
System.IO
Imports System.Net
Imports
System.Net.Sockets
Public
Class Form1
Dim socket AsNew Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)
PrivateSub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase .Load
socket.Bind( New IPEndPoint(IPAddress.Parse( "127.0.0.1" ), 50000))
EndSub
PrivateSub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' bouton connexion
socket.Listen(5)
socket.Accept()
Recept()
EndSub
PrivateSub Recept() ' Fonction qui permet de recevoir les donées
Dim Message AsByte () = System.Text.Encoding.ASCII.GetBytes( "" )
While socket.Available = 0
Try
socket.Receive(Message)
Catch erreur As SocketException
EndTry
EndWhile
Dim
MsgConv
As
String = System.Text.Encoding.ASCII.GetString(Message)
TextBox1.Text = MsgConv
Dim socket
As
New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click ' bouton connexion
socket.Connect(
"127.0.0.1", 50000)
End
Sub
Private
Sub TextBox1_TextClick(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles TextBox1.Click ' Quand on clique sur la case qui aura come valeur "X"
TextBox1.Text =
"X"
Envoi(TextBox1.Text)
End
Sub
Private
Sub Envoi(
ByVal msgtrans
As
String) ' Fonction qui permet l'envoi des données
Dim Message
As
Byte() = System.Text.Encoding.ASCII.GetBytes(msgtrans)
Dim socket
As
New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click ' bouton connexion
socket.Connect(
"127.0.0.1", 50000)
End
Sub
Private
Sub TextBox1_TextClick(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles TextBox1.Click ' Quand on clique sur la case qui aura come valeur "X"
TextBox1.Text =
"X"
Envoi(TextBox1.Text)
End
Sub
Private
Sub Envoi(
ByVal msgtrans
As
String) ' Fonction qui permet l'envoi des données
Dim Message
As
Byte() = System.Text.Encoding.ASCII.GetBytes(msgtrans)