Я пытаюсь отправить данные контроллера Xbox One по Wi-Fi с главного компьютера на клиент.Они оба работают под управлением Linux, и иногда код работает безупречно, а между ними существует крайняя задержка между ними.
Вот код, который я сейчас имею как для клиента, так и для сервера, они оба подключены кта же сеть, которая не имеет подключения к интернету.Любая помощь приветствуется
Server.py
from inputs import get_gamepad
import socket
import time
HOST='192.168.1.198'
PORT=5002
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(2)
conn, addr=s.accept()
def gamepad():
while 1:
events = get_gamepad()
for event in events:
if(event.code == "ABS_Y"): #ABS_Z
if (event.state > 9000):
percentage = float(float(event.state)/maxThrottle)
escValLeft.value = (((maxESC-minESC)/(maxThrottle-minThrottle))*float(event.state) + minESC)
elif (event.state < -9000):
escValLeft.value = (((maxESCRev-minESCRev)/(maxThrottle-minThrottle))*float(abs(event.state)) + minESCRev+10)
else:
escValLeft.value = minESC
if(event.code == "ABS_RZ"):
percentage = float(event.state/maxThrottle)
escValRight.value = (((maxESC-minESC)/(maxThrottle-minThrottle))*float(event.state) + minESC)
def sendtoclient():
while True:
val = str(int(escValLeft.value))+","+str(int(escValRight.value))+sep
print("Sending: " + val)
conn.send(val)
client.py
import socket
HOST = '192.168.2.62'
PORT = 5002
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
dataL = 2550
dataR = 2550
def get_controller():
global dataL
global dataR
while True:
buf = ''
hold = ''
while len(buf) < 9:
hold = s.recv(1)
#print (hold)
if hold == '[':
pass
elif hold == ']':
pass
else:
buf += hold
left,right = buf.split(',')
dataL = int(left)
dataR = int(right)
print("L,R ",dataL,dataR)