我要写一个服务器,作用是用做游戏的
我昨天问过一个人的问题,但是他说的也不是很清楚
他说,服务器通过TCP协议使用SOCKET和客户端进行连接
但服务器只有一个SOCKET,所有连接近来的客户端全部使用这个SOCKET
而在程序中使用与客户端个数相对应的线程我不明白的是,如果只有一个SOCKET,那怎么判断是和哪一个客户端进行通信呢?
还有,这样是不是可行呢?
我对网络通信和连接这方面不是很明白,基本上是初学者,请大家教教我该如何去做
如果有例子能发给我一个看看,让我学习就更好了!
非常感谢!!

解决方案 »

  1.   

    Socket socket;//服务器的,用来监听 
    Socket[] socketlist;//用来保存客户端的socket
    int listnum;
    Thread newthread;......
    newthread=new thread(new ThreadStart(Receive));......Receive()
    {
     while(true)
        {
         socketlist[listnum]=socket.accept();
        .......
        }
        listnum++;
    }你可以根据socketlist[]来判断是哪个客户端与服务器进行了连接。
      

  2.   

    服務器端使用一個socket端口進行偵聽,然後對於每一個請求的客戶端,使用一個新的socket進行連接。當然不能使用循環。連接多的時候,效率自然有影響,這時候程序的優化以及服務器的配置很重要。相對而言,並發連接的影響可能更大一些。