我跟着网上的一些文章写了一个同步方式的Sockets服务器和客户端,测试客户端发送一条信息给服务器,服务接收以后再返回给客户端.
虽然可以通讯,但我使用的是中断方式,用一个while(true)来无限循环接收客户端。
现在有个问题,while里面需要干一些事情,耗时大概1-3秒左右,这样一来,第二个客户端再进来的时候,是不是需要等待之前这个1-3秒完成以后,才可以接入?要是这样,是不是就别提并发数了,这难道就是同步方式的致命缺点?
此外,同步搭配多线程应该可以缓解这个尴尬的局面,但多线程sockets在我这里不太适合,因为来一客户端就启动一个线程,那得要多少线程啊,机器不卡死~~
我看了很多异步的文章,有写直接用异步写,有写异步居然还是用中断方式来写,不太明白,求高人指点一下。
另外最好写一个最简单的异步服务器和客户端,就让客户端发一个信息过去,服务器再会发给客户端就可以了,请写简单一点,我只想看这个实现的过程,最后请注明你这样写有什么优点,缺点又是什么~~差不多就这些了,要是给个地址让我自己去看的就不用发了,因为网上那些我基本都看过了,虽然本意都是在告诉我怎么写异步,但代码为了更实用,加了一堆乱七八糟的解决方案上去,让我实在抓不到重点,请大家帮帮我

解决方案 »

  1.   

    while 里面  传子socket 给  线程池
      

  2.   

    唉,Socket底层类就那么几十行代码
    有这么难吗?
    麻烦的是上层的协议约定
    或者其他业务处理上
      

  3.   

    用Socket异步。。例子网上很多的。http://www.51aspx.com/Code/TCPScoket
    这个比较经典,就是老了一点
      

  4.   

    http://www.cnblogs.com/JimmyZhang/archive/2008/09/16/1291854.html 
    这是个简单的例子  后面还有第四篇