"""
非阻塞
设置属性非阻塞: sock.setbloking(bool) false表示不阻塞,每3秒检测一次
超时检测: sock.settimeout(second)
"""
from socket import *
from time import sleep, ctime
# 日志文件
p = open("log.txt", 'a+')
soc = socket(AF_INET, SOCK_STREAM)
# 设置端口立即重用
soc.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
# 绑定服务器地址
soc.bind(("127.0.0.1", 9090))
# 开启监听(阻塞等待)
soc.listen(5)
# 设置套接字为非阻塞
# soc.setblocking(False)
# 设置超时检测
soc.settimeout(3)
# 循环等待客户端接入
while True:
print("waiting for connect...")
# 客户接入(没有客户端接入每隔3秒写一条日志)
try:
c, addr = soc.accept()
except (BlockingIOError,timeout) as a:
sleep(3)
p.write("%s : %s \n" % (ctime(), a))
p.flush()
else:
print("connect from ", addr)
data = c.recv(1024).decode()
print(">>", data)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)