Morpion en socket

wm198876 Messages postés 6 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 1 novembre 2007 - 1 nov. 2007 à 23:08
wm198876 Messages postés 6 Date d'inscription mercredi 23 août 2006 Statut Membre Derniè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

End

Sub

End




Class

   ---------------------------------------------------------------------------------------------------------

Côté client :

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 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) 

         Try 
                  socket.Send(Message, 0, Message.Length, SocketFlags.None)

         Catch erreur
As SocketException 

         End
Try

End
Sub
End

Class

-------------------------------------------------------------------------------------------------------------

En espérant avoir une réponse rapide de votre part

Merci

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 nov. 2007 à 23:32
Catégorie modifiée en .Net (et pas VB6)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
wm198876 Messages postés 6 Date d'inscription mercredi 23 août 2006 Statut Membre Derniè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.

Merki
[mailto:Y0M@N Y0M@N]!
0
Rejoignez-nous