wm198876
Messages postés6Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention 1 novembre 2007
-
1 nov. 2007 à 23:08
wm198876
Messages postés6Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention 1 novembre 2007
-
1 nov. 2007 à 23:58
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ées depuis 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 AsNew Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)
Private
Sub 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
Private
Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' bouton connexion
socket.Listen(5)
socket.Accept()
Recept()
EndSub
Private
Sub 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)
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 1 nov. 2007 à 23:40
Salut
"Je peux envoyer des données du serveur jusqu'au client sans problèmes (...) je n'arrive pas à recevoir les données depuis le serveur" : Faudrait savoir !
Côté client, c'est clair que tu ne dois pas recevoir grand chose puisque tu n'as aucune ligne qui vient interroger le socket ...
Côté serveur, il n'y a rien qui envoie des données non plus ...
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
wm198876
Messages postés6Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention 1 novembre 2007 1 nov. 2007 à 23:58
Pour le moment je cherche juste à tester l'envoi de donner du client vers le serveur, il est donc normal que le serveur n'envoie rien et que le client n'interroge pas le socket... Cependant, il est moins normal que la connexion entre le serveur et le client se fasse correctement, mais que je n'arrive pas à récupérer les données sur le réseau grâce au serveur... J'ai vérifié tout au pas-à-pas, le client se conecte bien et envoi bien les données... Le serveur ne les reçoit pas... C'est de là que vient mon problème.