2009-04-23 12 views
1

Ich habe versucht, ein Paket auf den Socket zu senden, den ich verwende, um auf Verbindungen zu hören - ich bin natürlich gescheitert.C#: Einfache TCP-Server-Frage

Ich erinnere mich an die Tage, die ich in Pascal codiert, dass es einen anderen Socket gab, den ich auch Verbindungen senden sollte, wurde es nach "Akzeptieren" erhalten.

Nun, wenn dies richtig ist, dann ist dies mein Problem:

Ich verwende WSAAsyncSelect() in meinem TCP-Server (C#)

protected override void WndProc(ref Message m) 
    { 
     switch (m.Msg) 
     { 

      case Values.MESSAGE_ASYNC: 
       switch (m.LParam.ToInt32()) 
       { 
        case Values.FD_ACCEPT: 
         WS2.Accept(); 
         break; 

        case Values.FD_READ: 
         WS2.Receive(); 
         break; 
        case Values.FD_CLOSE: 
         WS2.Close(); 
         break; 
       } 
       break; 

      default: 
       base.WndProc(ref m); 
       break; 
     } 
    } 

Ich habe ein Paket an den Client schicken wenn es verbunden wird.

Wie bekomme ich den Socket, wo ich Pakete an diesen Client senden muss?

Ich habe Accept() nicht aufgerufen, weil ich nicht weiß, wie es in C# gemacht werden sollte, suchte nach Beispielen, aber keine von ihnen verwendete die alte WSAAsyncSelect().

Bitte zeigen Sie ein Beispiel, wie es gemacht werden sollte.

Vielen Dank im Voraus!

Antwort

2

Werfen Sie einen Blick auf TcpListener. Beschränken Sie die Sprache auf C#, um die Nicht-C# -Beispiele zu entfernen.

+0

yep, habe die Verbindung zu TcpListener geändert - ändere den Sprachfilter nur in C#. –

+0

Sehr schlechtes Beispiel, aber ich habe, wie es funktioniert.Socket clientsock = sock.Accept(); –