码迷,mamicode.com
首页 > 其他好文 > 详细

socket 之阻塞与非阻塞

时间:2015-05-17 18:53:29      阅读:98      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!