1.socket超时, 服务器 端程序 # -*- coding: cp936 -*- """ 设置超时时间 测试端程序时间设置分别大于和小于5,大于5时,使用异常来捕获socket.timeout """ import socket host = "" port = 50000 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind((host,port)) s.listen(5) while 1: clientsock,clientaddr = s.accept() try: # 将超时时间设置为5 clientsock.settimeout(5) buf = clientsock.recv(8196) if len(buf) != 0: print buf except socket.timeout: print "time out" clientsock.shutdown(socket.SHUT_RD) clientsock.close() 2.socket超时户端测试程序 # -*- coding: cp936 -*- """ 设置超时时间客户端 第一次测试将sleep的参数设置为10,服务器端显示为"timeout" 第二次测试将sleep的参数设置为2,服务器端显示为"message comes from timeout client" """ import socket host = "localhost" port = 50000 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((host,port)) import time # 运行两次,分别使用不同的时间值,指定大小依据server端的设置,现在服务端为5 # 测试时使用10和2,测试settimeout的作用 time.sleep(10) s.send("message comes from timeout client" + "\r\n") s.shutdown(socket.SHUT_WR) s.close()