32
client.py
32
client.py
@@ -1,39 +1,25 @@
|
||||
import socket
|
||||
import time
|
||||
from evdev import UInput, ecodes as e
|
||||
from pynput.mouse import Controller
|
||||
|
||||
# Create a virtual mouse device
|
||||
ui = UInput(
|
||||
{
|
||||
e.EV_REL: [e.REL_X, e.REL_Y],
|
||||
e.EV_KEY: [e.BTN_LEFT, e.BTN_RIGHT]
|
||||
},
|
||||
name='virtual-mouse'
|
||||
)
|
||||
mouse = Controller()
|
||||
|
||||
HOST = '0.0.0.0'
|
||||
HOST = '0.0.0.0'
|
||||
PORT = 2025
|
||||
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
sock.bind((HOST, PORT))
|
||||
|
||||
print(f"Listening on {HOST}:{PORT}")
|
||||
print(f"listening on {HOST}:{PORT}")
|
||||
|
||||
try:
|
||||
while True:
|
||||
data, addr = sock.recvfrom(1024)
|
||||
x_str, y_str = data.decode().split(',')
|
||||
dx = int(float(x_str))
|
||||
dy = int(float(y_str))
|
||||
|
||||
# Note: uinput typically handles relative motion (REL_X / REL_Y)
|
||||
ui.write(e.EV_REL, e.REL_X, dx)
|
||||
ui.write(e.EV_REL, e.REL_Y, dy)
|
||||
ui.syn()
|
||||
|
||||
print(f"Moved mouse relative: dX={dx}, dY={dy}")
|
||||
x = float(x_str)
|
||||
y = float(y_str)
|
||||
mouse.position = (x, y)
|
||||
print(f"Moved mouse to: X={x}, Y={y}")
|
||||
except KeyboardInterrupt:
|
||||
print("\nUDP server shutting down.")
|
||||
print("UDP server shutting down.")
|
||||
finally:
|
||||
ui.close()
|
||||
sock.close()
|
||||
Reference in New Issue
Block a user