保持python脚本运行,同时等待tcp连接
这是一种让python脚本保持循环运行的方法,即使它正在等待TCP连接或通过TCP传入的消息 我已经产生了一个“程序”,我想作为一个独立的运行,但也能够通过TCP连接控制它。我让程序的主要部分按我所希望的方式运行,但当向其中添加TCP控件时,我的python脚本会在等待TCP连接或消息通过TCP进入脚本的部分暂停。有办法解决这个问题吗保持python脚本运行,同时等待tcp连接,python,sockets,tcp,Python,Sockets,Tcp,这是一种让python脚本保持循环运行的方法,即使它正在等待TCP连接或通过TCP传入的消息 我已经产生了一个“程序”,我想作为一个独立的运行,但也能够通过TCP连接控制它。我让程序的主要部分按我所希望的方式运行,但当向其中添加TCP控件时,我的python脚本会在等待TCP连接或消息通过TCP进入脚本的部分暂停。有办法解决这个问题吗 s.listen(0) conn, addr = s.accept() print('connected by', addr) #---------------
s.listen(0)
conn, addr = s.accept()
print('connected by', addr)
#-------------------------LOOP START----------------------------------------
while continue_reading:
print 'HELP 1'
doc = minidom.parse(folder + file)
card = doc.getElementsByTagName("card")
#------------IP Stuff---------------
data = conn.recv(1024)
if data:
print 'Help 2'
if data == "THEME?":
itemlist = doc.getElementsByTagName('card')
conn.send(str(len(itemlist))+"\r\n")
for x in itemlist:
xcard = x.attributes['id'].value
xname = x.getElementsByTagName("name")[0]
xfname = xname.firstChild.data
conn.send(xcard+" - "+xfname+"\r\n")
elif data == "RUNNING?":
print"RUNNING?"
conn.send(uid2 +" - "+fname+ "\r\n")
#----------------Rest of program runs below this line working fine-----------
使用
选择
、epoll
或线程。有一些“事件循环”库使这变得更容易,比如GLib、Twisted等。感谢@JonathonReinhart,我有点理解python中的select,但对它来说还是新的。我正在做RPi。在你看来,什么是我最好的解决办法。任何到图书馆和例子的链接都很好。