Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保持python脚本运行,同时等待tcp连接_Python_Sockets_Tcp - Fatal编程技术网

保持python脚本运行,同时等待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) #---------------

这是一种让python脚本保持循环运行的方法,即使它正在等待TCP连接或通过TCP传入的消息

我已经产生了一个“程序”,我想作为一个独立的运行,但也能够通过TCP连接控制它。我让程序的主要部分按我所希望的方式运行,但当向其中添加TCP控件时,我的python脚本会在等待TCP连接或消息通过TCP进入脚本的部分暂停。有办法解决这个问题吗

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。在你看来,什么是我最好的解决办法。任何到图书馆和例子的链接都很好。