我正在为应用程序的服务器端制作原型,该应用程序应该可以模拟从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