请问socket通信服务器和客户端中线程是什么意思
一定要用线程吗
线程具体用的方法有哪些

解决方案 »

  1.   

    一般来讲是要的,因为Java的Socket往往是同步阻塞模式的,而非异步消息IO模型的。绝大多数情况都要求你在一个线程中做这个事情。
    当然了,一个线程内也可以,那么accept的时候就等在那里好了,什么都干不了了。Java高级的类库也有对异步IO有支持的,实际开发中,尽量用这些类。我觉得Socket和ServerSocket就是玩具。
      

  2.   

    不管用普通io还是nio 写socket通信不开线程的搞法很少
    除非自己写着玩的。
      

  3.   

    个人感觉,同步IO始于完成一些简单的逻辑,
    异步IO + 消息 + 状态机,适用于完成复杂的逻辑。
    但是当前看来,比如Windows的IOCP,还是Linux的epoll模型都是异步的。
    所以实际的开发往往都是异步IO,然后用一个线程来处理, 在这里转成同步关系。处理起来更简单一些。
      

  4.   

    关于同步,楼主可以找些小文章来阅读一下。推荐我朋友写的这篇文章。
    http://fixopen.javaeye.com/blog/27869
      

  5.   

    如果服务器(监听端)断开了,那么就不能再连起来了。
    所谓同步与不同步,是指双方的协议定义。对于底层的协议,比如TCP,它对于每一个数据包是同步的。但在TCP协议之上,你可以定义同步的通信,也可以定义异步的应用。