korben31 | Bonjour
J'ai cree une classe de socket
Mais jai un soucis pour la reception
Voila se que j'ai fait pour linstant :
Code :
- public void recvmsg()
- {
- if (this.sockclient != null && this.sockclient.Connected)
- {
- //On lance la reception.
- this.sockclient.BeginReceive(this.recvbuf, 0, this.recvbuf.Length, SocketFlags.None, new AsyncCallback(recvcallback), this.sockclient);
- }
- else
- {
- erreur("Erreur de reception: Socket non connecté" );
- }
- }
- /// <summary>
- /// Call back de la methode recvmsg
- /// </summary>
- private void recvcallback(IAsyncResult asyncResult)
- {
- try
- {
- //On récupere le socket sur lequel on a envoyé les données
- Socket socket = (Socket)asyncResult.AsyncState;
- //Termine la reception
- int read = socket.EndReceive(asyncResult);
- string msg = read.ToString();
- MessageBox.Show(msg);
- //Si on lis + de 0octet c'est que tout le message a ete transmis.
- if (read > 0)
- {
- //Envoie l'information a la methode de traitement de reponse.
- reception(Encoding.ASCII.GetString(this.recvbuf,0,this.recvbuf.Length));
- //reset buffer
- Buffer.SetByte(this.recvbuf, 0, 0);
- //Relance la lecture suivante.
- this.sockclient.BeginReceive(this.recvbuf, 0, this.recvbuf.Length, SocketFlags.None, new AsyncCallback(recvcallback), this.sockclient);
- }
- //Si 0octet sont transmis alors fin de connexion
- if (read == 0 && !this.etatconnect)
- {
- this.deco();
- erreur("Deconnexion du socket suite a la reception" );
- }
- receiveDone.Set();
- }
- catch(SocketException e)
- {
- erreur("Exeption de connexion dans la reception\n" + e.Message);
- status = new string[1] { e.Message };
- receiveDone.Set();
- }
- }
|
Mais le probleme c'est que je sais pas comment faire pour avoir une methode qui maintenant soit comme ca:
Code :
- public string reception();
|
et qui me renvoi directement se que ca recoi et egalement que un send corresponde a un receive ( actuellement ca attend que le buffer se remplisse il me semble ) Message édité par korben31 le 20-04-2006 à 17:01:20
|