我正在写一个模拟游戏来允许我使用第二个屏幕和一组统计数据。现在我发送数据并接收数据,但是当我收到数据时会有额外的字符,例如''。这导致问题阻止我创建一个int变量。我试过剥去这些角色,但仍然有问题。这是错误吐出来:ValueError异常:对于int(*)基数为10无效的文字: “(0' ”用套接字添加字符来接收数据
这里就是我送:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = '192.168.0.2'
port = 9000
s.bind((host,port))
s.listen(5)
conn, addr = s.accept()
print ('Got connection from', addr)
while True:
#--- RPM --
rpm = info.physics.rpms
max_rpm = info.static.maxRpm
if rpm != 0:
rpm_percent = int(rpm/max_rpm*100)
else:
rpm_percent = 0
#--- SPEED ---
speed = int(info.physics.speedKmh/1.609344)
#--- GEAR ---
gear = info.physics.gear - 1
if gear == 0:
gear = str("N")
elif gear < 0:
gear = str("R")
#--- FUEL ---
fuel = info.physics.fuel
max_fuel = info.static.maxFuel
if fuel != 0:
fuel_percent = int(fuel/max_fuel*100)
else:
fuel_percent = 0
#--- BRAKING ---
brake = info.physics.brake
braking_lvl = int(brake/100*10000)
#--- LAP ---
current_time = info.graphics.currentTime
#--- SEND DATA ---
time.sleep(.1)
#print_data = 'Speed: ', speed, 'RPM: ', rpm_percent, 'Gear: ', gear, 'Braking: ', braking_lvl, 'Fuel: ', fuel, fuel_percent,'Lap Time: ', current_time
send_data = (speed, ';', rpm, ';', rpm_percent, ';', gear, ';', braking_lvl, ';', fuel, ';', fuel_percent)
conn.send(str(send_data).encode('ascii'))
print(send_data)
s.close()
而且客户端,这对错误:??
为什么看到这些额外的字符,什么是删除它们最有效的方法/阻止他们
干杯
右,确定...我怎么会去那? – Jam3sn
看看https://docs.python.org/2/howto/sockets.html#using-a-socket – ravenspoint
非常感谢。我已经通读了一遍,这是有道理的。我唯一没有得到的是如何在接收时确定MSGLEN。我们如何找到这里使用:'while bytes_recd
Jam3sn