请问如果几个客户端(动态)同时连一个服务器,在服务器端怎么处理阿,每连接一个客户在服务端都要new 一个socket,然后在邦定到服务端吗?
还有如果有两个客户端连到一个服务器,那么服务端要怎么处理才能让这两个客户传递信息呢。
请各位高手帮忙下哦```

解决方案 »

  1.   

    如果只是局域网的话,参照一下这个:
    http://www.easymessenger.cn
      

  2.   

    用remoting
    比较好
    如果是广播式的
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net.Sockets;
    using System.Threading;namespace WindowsApplication3
    {
    class Server
    {
    public Server(int port)
    {
    TcpListener l;
    l = new TcpListener(port);
    l.Start();
    Thread t = new Thread(delegate() { onaccept(l); });
    t.Start();
    }public Server()

    TcpListener l;
    l= new TcpListener(99);
    l.Start();
    Thread t = new Thread(delegate() {onaccept(l);});
    t.Start();
    }private void onaccept(TcpListener l)
    {
    while (true)
    {
    TcpClient c = l.AcceptTcpClient();
    Thread t = new Thread(delegate() { OnReceiveAndSend(c); });
    t.Start();
    }
    }private void OnReceiveAndSend(System.Net.Sockets.TcpClient client)
    {
    System.Net.Sockets.NetworkStream ns = client.GetStream();
    System.IO.StreamReader sr = new System.IO.StreamReader(ns);
    System.IO.StreamWriter sw = new System.IO.StreamWriter(ns);
    sw.AutoFlush = true;
    sw.WriteLine("Welcome to zy's server");
    string str = "";
    while (true)
    {
    str = sr.ReadLine();
    sw.WriteLine(str);
    if(str.ToLower().Equals("bye"))
    {
    sw.Close();
    sr.Close();
    ns.Close();
    client.Close();
    break;
    }
    }
    }}
    }
      

  4.   

    谢谢楼上的,不过有好多问题啊
    1.using System.Collections.Generic
    这个命名空间不存在。2.Thread t = new Thread(delegate() {onaccept(l);})这种方式好像有问题,说托管无效,我把它改成:Thread t = new Thread( new ThreadStart( onaccept(l) ));后又有新的问题3.System.Net.Sockets.TcpListener.TcpListener(int)' 是旧的方法: Use TcpListener(IPAddress localaddr, int port)。
    如果有完整的例子话给我贴一个哦```拜托啦```
      

  5.   

    这个代码我在win2003 vs2005下编译通过