关于使用Client and server Socket 编程的阻塞和非阻塞问题(100分)

C

chrisn

Unregistered / Unconfirmed
GUEST, unregistred user!
使用ClientSocket 和 ServerSocket 组件编程时,
在不同情况下会遇到阻塞和非阻塞的TYPE设置,请问各位大虾
这两种方式的具体区别,有关书上只是泛泛而谈,如有例子说明就更好了
 
我的理解:阻塞模式是等停的一个连接的数据没有发送完毕,sever端就等在那里,不响应其他连接,这样的好处是
一对一传送较稳定client数据传送发应速度快,但每个连接服务器要创建一个线程,耗费系统资源多。
非阻塞模式不是等停的有点像cpu时间片轮转,可以轮流处理多个连接数据,可以用一个线程
处理多个连接,但如果连接较多单个的响应速度就会慢。
 
说的再具体点
 
freecom说得也差不多了,阻塞就是任何操作都要等到结束了才会执行下一步,非阻塞则不
会等待而是直接执行下一步。
非阻塞方式是由于历史原因而被保留下来的,现在一般都采用阻塞方式。
 
如果作为服务端,当要处理很多客户请求的时候就用非阻塞方式,否则建议用阻塞方式
 
楼上的说错了吧
 
补充一下,非阻塞提供了异步的事件处理
还有freecom 所说的阻塞应该改为对于一个连接,在执行accept 或 recv 时可能会发生阻
塞,但不影响其它连接。
 
顶部