首页 > 其他 > 详细

socket 之阻塞与非阻塞

时间:2015-05-17 18:51:41      阅读:123      评论:0      收藏:0      [点我收藏+]

套接子的阻塞与非阻塞


阻塞:

在未完成当前任务时,不会去处理其他任务。例如当一个函数在执行接收数据时,只要数据未接收完,它就会一直等待接收下去,不会执行其他的操作。

非阻塞:

在未完成一个任务时,可以停止该项任务,进行下一步的操作。例如socket服务端在等待客户端的连接时,若有客户端请求连接,则与之连接。若没有客户端的请求,服务端就会去做其他的事情,而不会一直等待。

默认情况下tcp套接字处于阻塞模式,可是调用setblocking(0)或者setblocking(1)将套接字改为非阻塞模式或阻塞模式。

如下代码:

import socket

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setblocking(0) #非阻塞模式
s.settimeout(0.5)#超时时间
s.bind((h,p))...


socket 之阻塞与非阻塞

原文:http://ahaii.blog.51cto.com/1695127/1652074

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!