我尝试创建一个服务器端应用程序来监听连接,并根据客户端的说法调用方法。但是,当我调用方法上传时,我想继续在main下执行代码。
无论如何我能做到这一点,还是我采取了不正确的方法?代码如下;
def main(ipAddr, tcpPort, bufferSize, s):
try:
s.bind((ipAddr, tcpPort))
s.listen(4)
conn, addr = s.accept()
print("Connection attempt from: %s" % addr)
messageRecv = ""
while True:
data = conn.recv(bufferSize)
if not data: break
messageRecv = data.decode('utf-8')
finally:
conn.close()
if messageRecv == "Ready": upload(addr)
main(ipAddr, tcpPort, bufferSize, s)
def upload(addr):
pass
答案 0 :(得分:1)
考虑使用multiprocessing
模块,它本质上是Python的“多线程”包。该API与threading
模块非常相似,但由于GIL,threading
可能会过高。
在您的情况下,您可能会遇到以下情况:
p = Process(target=upload, args=(addr,))
p.start()
# some other code
p.join()