我正在寫一個模擬遊戲來允許我使用第二個屏幕和一組統計數據。現在我發送數據並接收數據,但是當我收到數據時會有額外的字符,例如''。這導致問題阻止我創建一個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