2013-11-24 59 views

回答

1

你有什麼事情都沒有表現出我們的錯誤:

# sender 
>>> from socket import * 
>>> s=socket() 
>>> s.connect(('localhost',8000)) 
>>> number=str(2).zfill(4) 
>>> s.send(number) 

# receiver 
>>> from socket import * 
>>> s=socket() 
>>> s.bind(('',8000)) 
>>> s.listen(1) 
>>> c,a=s.accept() 
>>> c.recv(4) 
'0002' 
+0

是。我發送1並且它可以工作,然後2發送到11是否是緩衝區問題? – user784756

+0

TCP是一個流媒體協議,因此它沒有消息邊界。同樣'send'和'recv'需要檢查它們的返回值,因爲它們可能不會發送或接收請求的金額。例如,您必須設計一個將此考慮在內的協議,並在數據中發送消息的大小。 –

+0

查看我的另一個例子的答案:http://stackoverflow.com/a/9968240/235698。用一個演示問題的例子更新您的問題,我可以給出更好的答案。 –