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