2011-12-29 8 views
-5

このサーバーに接続できるクライアントの数はいくつですか?このサーバーに接続できるクライアントの数はいくつですか?

private void btnserverconect_Click(object sender, EventArgs e) 
{ 
    Form1_Load(sender, e); 
} 

private void Form1_Load(object sender, EventArgs e) 
{ 
    try { 
     server = 
      new Socket(AddressFamily.InterNetwork, SocketType.Stream, 
        ProtocolType.Tcp); 

     //IPAddress local = IPAddress.Parse("127.0.0.1"); 
     EndPoint destination = new IPEndPoint(IPAddress.Any, 8000); 
     server.Bind(destination); 
     server.Listen(5); 
     Thread wait = new Thread(wa); 
     wait.Start(); 
    } 
    catch(Exception) { 
     MessageBox.Show("connection error !"); 
    } 
} 

void wa() 
{ 
    label1.Text = "please wait..."; 
    server = server.Accept(); 
    label1.Text = "connect"; 
    while (true) { 
     try { 
      byte[]by = new byte[100]; 
      int n = server.Receive(by); 
      lstserver.Items.Add("client :" + 
         Encoding.ASCII.GetString(by, 0, n)); 
     } 
     catch(Exception) { 
     } 
    } 
} 
+0

*そのサーバーに接続しようとしたクライアントはいくつですか? –

+0

'server.Accept()'から得た値を新しいスレッドに渡し、 'Accept'を続ける –

答えて

2

Accept()は1回だけ呼び出されるようです。

したがって、1つのクライアント。この行の後

+0

私のやることを手伝ってください。コードを書いてください。 –

+2

何をしたいですか?私はまだそれを見ていない。私はあなたが接続できるクライアントの数を知りたいと思っていました。 – sarnold

+0

サーバに2番目のクライアントに接続したい –

1

server変数は、現在接続されている(1)クライアントに話しソケットを指すよう

server = server.Accept(); 

リスニングソケットは、もはや参照されていません。また、そのクライアントからの切断メッセージを無視します(Socket.Receive()が0を返す)。

ps。あなたは、リストボックス(lstserver)がGUIスレッド以外のスレッドからリストアされていると思われるものを更新しようとしています。

関連する問題