socket通信中必须用线程吗 请问socket通信服务器和客户端中线程是什么意思一定要用线程吗线程具体用的方法有哪些 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般来讲是要的,因为Java的Socket往往是同步阻塞模式的,而非异步消息IO模型的。绝大多数情况都要求你在一个线程中做这个事情。当然了,一个线程内也可以,那么accept的时候就等在那里好了,什么都干不了了。Java高级的类库也有对异步IO有支持的,实际开发中,尽量用这些类。我觉得Socket和ServerSocket就是玩具。 不管用普通io还是nio 写socket通信不开线程的搞法很少除非自己写着玩的。 个人感觉,同步IO始于完成一些简单的逻辑,异步IO + 消息 + 状态机,适用于完成复杂的逻辑。但是当前看来,比如Windows的IOCP,还是Linux的epoll模型都是异步的。所以实际的开发往往都是异步IO,然后用一个线程来处理, 在这里转成同步关系。处理起来更简单一些。 关于同步,楼主可以找些小文章来阅读一下。推荐我朋友写的这篇文章。http://fixopen.javaeye.com/blog/27869 如果服务器(监听端)断开了,那么就不能再连起来了。所谓同步与不同步,是指双方的协议定义。对于底层的协议,比如TCP,它对于每一个数据包是同步的。但在TCP协议之上,你可以定义同步的通信,也可以定义异步的应用。 生产消费者问题,JAVA代码有几句不是特别理解。 求1-100的素数 JDK安装 EXCEPTION问题 java中怎樣表示一個無窮大﹐或無窮小數﹖ 讨论一下,java中的成员方法和static方法的区别 除了swt,还有没有其他的支持OLE控件的开发包?,急 蔡鸟的菜问题 : 控制小数点后的位数 请问:用JAVA如何发送传真?解决了千分相送,谢谢!!! 那里可以下载Visualage for java 3.02 请问高手,谁用java做过共享软件??? JTable可以绑定数据,但是修改table中的数据,如何提交到数据库?
当然了,一个线程内也可以,那么accept的时候就等在那里好了,什么都干不了了。Java高级的类库也有对异步IO有支持的,实际开发中,尽量用这些类。我觉得Socket和ServerSocket就是玩具。
除非自己写着玩的。
异步IO + 消息 + 状态机,适用于完成复杂的逻辑。
但是当前看来,比如Windows的IOCP,还是Linux的epoll模型都是异步的。
所以实际的开发往往都是异步IO,然后用一个线程来处理, 在这里转成同步关系。处理起来更简单一些。
http://fixopen.javaeye.com/blog/27869
所谓同步与不同步,是指双方的协议定义。对于底层的协议,比如TCP,它对于每一个数据包是同步的。但在TCP协议之上,你可以定义同步的通信,也可以定义异步的应用。