Socket (méthode BeginReceive)

Socket (méthode BeginReceive) - C#/.NET managed - Programmation

Marsh Posté le 19-05-2005 à 20:09:10    

Alors voila, je suis débutant dans la programmation réseau! Alors voila j'ai bien réussi a créer la connexion entre le client et le serveur! mais une fois que j'arrive sur l'instruction BEGINRECEIVE j'ai une belle petite exeption
"Object references not set to an instance of an objet"
 
Alors voila je ne comprends pas trop l'erreur en fait :s si quelqu'un pouvait me renseigner sur le sujet!
 

Code :
  1. public Form1()
  2.         {
  3.             InitializeComponent();
  4.             compteur = 0;
  5.             readbuf = null;
  6.             try
  7.             {
  8.                 IPHostEntry he = Dns.GetHostByName(Dns.GetHostName());
  9.                 IPAddress[] ipadress = he.AddressList;
  10.                 mysocks = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  11.                 mysocks.Bind(new IPEndPoint(ipadress[0], 15));
  12.                 mysocks.Listen(10);
  13.                 mysocks.BeginAccept(new AsyncCallback(ConnectionAcceptCallback), mysocks);
  14.             }
  15.             catch (Exception ex)
  16.             {
  17.                 MessageBox.Show(ex.Message.ToString());
  18.             }
  19.         }
  20.         private void ConnectionAcceptCallback(IAsyncResult asyncResult)
  21.         {
  22.             try
  23.             {
  24.                 //On récupere le socket qui possede la connection
  25.                 Socket socket = (Socket)asyncResult.AsyncState;
  26.                 // Si le handle est à -1 --> La socket Serveur a été fermée.
  27.                 if (socket.Handle.ToInt32() != -1)
  28.                 {
  29.                     //on accepte la connection
  30.                     mysocks = socket.EndAccept(asyncResult);
  31.                     //on ajoute un message dans la listbox
  32.                     result.Invoke(new DelegateDisplay(this.DisplayMessage), "Connexion d'un client" );
  33.                     //On se met en attente d'un message
  34.                     mysocks.BeginReceive(readbuf, 0, readbuf.Length, SocketFlags.None, new AsyncCallback(ReceiveMessageCallback), mysocks);
  35.                 }
  36.             }
  37.             catch (Exception ex)
  38.             {
  39.                 result.Invoke(new DelegateDisplay(this.DisplayMessage), ex.Message.ToString());
  40.             }
  41.         }

Reply

Marsh Posté le 19-05-2005 à 20:09:10   

Reply

Marsh Posté le 19-05-2005 à 20:27:11    

t'as pas initialisé la variable readbuf dans le constructeur. si tu la laisses à null, forcément... :sarcastic:


Message édité par Harkonnen le 19-05-2005 à 20:27:41

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 19-05-2005 à 22:23:27    

ah merde juste! merci bcp pour ton aide... (parfois les erreurs sont tellement conne)

Reply

Marsh Posté le 20-05-2005 à 13:03:18    

Ca ne serait pas arrivé avec un SGDB digne ce nom [:petrus75]


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 20-05-2005 à 13:29:12    

je vois pas le rapport avec un sgbd, c'est de la programmation réseau! pas de la programme dans une base de donnée, tu t'es gourré de sujet mon grand.

Reply

Marsh Posté le 20-05-2005 à 14:06:04    

[:rofl]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-05-2005 à 11:04:10    

moi23372 a écrit :

je vois pas le rapport avec un sgbd, c'est de la programmation réseau! pas de la programme dans une base de donnée, tu t'es gourré de sujet mon grand.


 
Erreur ! Je ne suis pas grand [:petrus75]


---------------
Loose Change Lies | Bars | Last.fm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed