我使用客户端服务器套接字连接从我的Python服务器传输一些数据。我目前遇到的问题是服务器套接字的创建阻止了该程序,因为它无法连接到客户端。
我尝试使用异步,但没有成功
from flask import *
import random
import socket
import json
app = Flask(__name__, static_url_path='')
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind(('',55555))
async def acceptConnexion():
while True:
socket.listen(10)
client, address = socket.accept()
print("{} connected".format( address ))
@app.route('/getInfos')
def getInfos():
global infosThymio
return json.dumps(infosThymio)
if __name__ == '__main__':
app.run()
我不知道在哪里可以调用我的acceptConnexion(),并且不知道如何设法使此方法在后台运行,直到它可以与客户端进行连接为止。
答案 0 :(得分:0)
您可以通过这种方式将accept
调用分离到一个单独的线程,并在边线程等待接受时让主线程继续。
import socket
from threading import Thread
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind(('',55555))
def acceptConnexion():
print("running in thread")
while True:
socket.listen(10)
address = socket.accept()
print("{} connected".format( address ))
if __name__ == "__main__":
thread = Thread(target = acceptConnexion)
print("you can here do bla bla")
x = 1
print("x", x)
print("Main thread will wait here for thread to exit")
thread.join()
print("thread finished...exiting")