Envoyer plusieurs messages dans une application chat sans fermer mon socket

francesdereve Messages postés 75 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 6 août 2007 - 17 févr. 2006 à 22:32
immerczeck Messages postés 27 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 28 juin 2008 - 18 févr. 2006 à 00:29
je fais une application chat de type client serveur,je veux que dans la fenetre cliente ou bien celui du serveur l'utilisateur puisse envoyer plusieurs messages.Ce qui m'arrive dans ce que j'ai fait c'est qu'il peut seulement envoyer un seu message,car quand il clique sur send le tiers peut recevoir tout ce qu'il a envoyé,mais le tiers ne peut pas envoyé de son cote, de meme celui qui avait envoyé s'il essaie d'envoyer l'aute ne peut plus recevoir.
Je ne crois pas que ca vient de ma methode receive,c'est peut etre du send et du connect_click
dans mon code serveur,j'ai un bouton connect sur lequel je clique avant de lancer le client ,voici le code

private void connect_Click(object sender, System.EventArgs e)


{ IPAddress ipAd=IPAddress.Parse("127.0.0.1");


IPEndPoint ippoint=newIPEndPoint(ipAd,8000);


sockserveur.Bind(ippoint);


sockserveur.Listen(1);


//if(sockserveur.Blocking)


sockclient=sockserveur.Accept();




}



Voici la methode send du serveur

private void Send_Click(object sender, System.EventArgs e)


{


byte[]buffer=ConversionString(richTextBox1.Text);


sockclient.Send(buffer,0,buffer.Length,SocketFlags.None);


sockclient.Shutdown(SocketShutdown.Send);


}



dans la forme cliente voici comment j'ai initialisé le socket,apres la methode InitializeComponent() du c#;


sockclient=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);


IPAddress ipad=IPAddress.Parse("127.0.0.1");


IPEndPoint ippoint=new IPEndPoint(ipad,8000);


sockclient.Connect(ippoint);//


if(sockclient.Connected){


MessageBox.Show("jj");


MessageBox.Show("Bonjour");


}


else


MessageBox.Show("ll");


la methode send du client est semblable avec celle du serveur,mon probleme c'est de permettre à chacun d'envoyer plusieurs messages a chaque fois comme un vrai chat,je pense que je dois utiliser un thread mais je ne sais pas comment faire. je sais pour fermer mon socket,je dois faire socket.close().



FD

1 réponse

immerczeck Messages postés 27 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 28 juin 2008
18 févr. 2006 à 00:29
pourquoi est-ce que tu désactives l'envoi après chaque message envoyé?
sockclient.Shutdown(SocketShutdown.Send);
0
Rejoignez-nous