现在我想一个实现服务器程序要求如下:
这个服务器不断接收客户端的UDP连接,为了不在接收数据的时候阻塞,要采取异步模式。
问题是在用UDP连接的情况下
      1.如果采取异步模式,完成端口是一个选择,因为可以多线程,不过是否适合UDP,我看到网上大多数是tcp的?
      2.服务器的sock怎么同时处理N(比如:5)个的客户端连接?
      
      

解决方案 »

  1.   

    1. 一样的可以使用UDP
    2. 客户端来了就建立连接等
      

  2.   

    问题2的意思是:比如当两个客户端同时来连接,服务器的一个sock怎么同时处理?
      

  3.   

    UDP一般是只用一个socket,与多台主机通讯也是一个一个处理,所以用一个线程足以,完成端口适用于管理大量socket。
      

  4.   

    to cnzdgs:
    因为有可能是多任务的,假如是tcp(可能会用到):想保留一个服务器sock与客户端的连接,在进行着任务,还没有完成,但是cpu时间到了,一个服务器tcp sock又如何办呢?有需要多少个tcp sock呢?
                                      
      

  5.   

    如果说CPU时间到了,那就保存CPU环境,等下一次继续执行。
      

  6.   

    没明白你的意思,假设客户端有数据发送过来,数据会保存在缓冲区里面,等待程序接收,如果缓冲区满了,后面的数据会发不过来,对于TCP协议,发送端会自动重发,直到全部接收为止。
      

  7.   

    已经解决了大部分的疑惑了,多谢你们指点(mengde007,cnzdgz,oyljerry)!!