基本上嘗試使用客戶端發送屏幕上的字符的座標,然後播出到其他客戶端,以便它在屏幕上繪製的字符。 然而,我發現了以下錯誤:Python的插座 - 使用座標GETPOS
- 客戶端:
s.send((y))
- 服務器端:
ValueError: invalid literal for long() with base 10
客戶端的代碼,我得到錯誤:
def updatecoords(task):
s.send(name)
print 'Name sent...'
def updatepos(task):
y = format(Cat.getPos())
s.send((y))
print 'Position sent'
return Task.cont
def readServer(task):
try:
data = s.recv(1024)
print data
except:
print 'no data received'
return Task.cont
服務器代碼我得到的錯誤:
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST,PORT))
server_socket.listen(1)
conn, addr = server_socket.accept()
print('Someone connected.He :%s%addr')
while True:
data = conn.recv(1024)
if not data:
break
data = pickle.loads(data) # Or json.loads(data)
print "Got id: {message_id}, data: {message}".format(**data)
您還沒有發佈的回溯,但我是對的,如果我說的錯誤是行'數據= pickle.loads(數據)#或者json.loads(數據)'? – ElmoVanKielmo
請發佈追蹤和客戶端和服務器的完整代碼。 – gravetii
你在客戶端中使用某種全局套接字對象嗎?你似乎也相信每次你從套接字讀取數據,你都會得到所有的數據。這很少是真實的,你應該*總是*確保你得到*全部*的數據。 – msvalkon