我已经构建了一个简单的TCP服务器,它运行在我的Pi上,存储从GPRS模块接收的一些数据。它通常工作正常,但随机间隔(几个小时甚至几天)我的python脚本不再接收任何数据。我怀疑这是由TCP连接无法正常关闭引起的。如果我终止脚本并尝试再次运行它,我会收到端口正在使用的错误。
到目前为止,这是我的代码:
from socket import *
import time
HOST = ''
PORT = 24071
BUFFER_SIZE = 200
b=" "
data=" "
s = socket(AF_INET, SOCK_STREAM)
s.bind((HOST, PORT))
while 1:
s.listen(1)
print ''
print ''
print ''
mTime = time.strftime('%d-%m-%y %H:%M:%S')
print mTime
print 'Port',PORT,': listening...'
conn, addr = s.accept()
print 'Connection address:', addr, conn
while 1:
data = conn.recv(BUFFER_SIZE)
print "received:", data
if not data: break
if data=="start":
b=conn.recv(BUFFER_SIZE)
print "data:", b
if not b: break
if data=="check":
print "check!!"
conn.send("test")
我希望在几秒钟后结束任何持久连接(例如20秒)。我有什么方法可以做到这一点吗?