2009-09-10 10 views
0
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Net; 
using System.Net.Sockets; 
using System.IO; 

namespace PDMS_TCG 
{ 
    public partial class FormHost : Form 
    { 
     public FormHost() 
     { 
      InitializeComponent(); 
     } 

     private void btnConnect_Click(object sender, EventArgs e) 
     { 
      { 
       IPAddress ipAd = IPAddress.Parse(txtAddress.Text); 

       TcpListener myList = new TcpListener(ipAd, int.Parse(txtPort.Text)); 

       myList.Start(); 
       Socket s = myList.AcceptSocket(); 
       RPS rps = new RPS(); 
       rps.Show();    
      } 
     } 

     private void btnHost_Click(object sender, EventArgs e) 
     { 
      IPAddress ipAd = IPAddress.Parse(GV.strAddress); 
      TcpListener myList = new TcpListener(ipAd, int.Parse(txtPort.Text)); 

      myList.Start(); 

      Socket s = myList.AcceptSocket(); 
     } 
    } 
} 

txtAdresse = Adresse IP de l'hôteC# Serveur TCP Aide

txtPort = Numéro de port

J'ai une certaine confusion en termes de TcpListener/Sockets. Quelqu'un pourrait-il m'aider à corriger ce code? En cliquant sur btnHost, vous hébergez la connexion et btnConnect se connecte à l'hôte. Aussi, une fois connecté, comment puis-je avoir 1 événement déclencher un événement sur l'autre ordinateur?

Répondre

3
  • Utiliser un TcpClient sur le côté client pour établir une connexion au serveur (Connect).

  • Utilisez un TcpListener côté serveur pour accepter les connexions entrantes (AcceptTcpClient). AcceptTcpClient renvoie TcpClien t.

Alors appelez GetStream sur les deux TcpClient s pour obtenir un Stream que vous pouvez utiliser pour communiquer avec l'autre côté (synchrone ou asynchrone).

Les deux TcpClient et TcpListener ont des exemples étendus dans le MSDN. Jetez un coup d'oeil à eux et vous aurez quelque chose à courir très bientôt.