Python套接字服务器在接收数据时出现滞后

时间:2019-11-17 22:31:07

标签: python-3.x serversocket python-sockets

我正在为应用程序的服务器端制作原型,该应用程序应该可以模拟从ios设备到wifi的PC上的鼠标输入。我的应用程序使用设置了TCP_NODELAY选项的套接字,并将数据包“ MSM number number ”发送到服务器。我得到了预期的行为,总体上鼠标移动很平稳,但是经常出现滞后现象(每5-10秒一次),使鼠标移动0.5-2秒。我试图打印输入的数据,但似乎在发生滞后时它不会丢失,但是会延迟接收。您对我该如何消除这些随机延迟有任何建议?已检查问题是否由wifi路由器引起。似乎不是。 我的代码

python
import socket
from pynput.mouse import Button, Controller

mouse = Controller()
anchor = mouse.position
def move(x, y):
    mouse.position = (x + anchor[0],y + anchor[1])

HOST = ''
PORT = 9999
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen(1)
    s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)
        while True:
            data = conn.recv(2048).split()
            for i in range(len(data)):
                if data[i] == b"MHM":
                    if len(data) >= i+3:
                        xx = float(data[i+1])
                        yy = float(data[i+2])
                        move(xx, yy)
                if data[i] == b"MSM":
                    anchor = mouse.position
            if not data: 
                break

0 个答案:

没有答案