0
我嘗試發送的4個字符填充數字,但是當我送你如何通過Python套接字發送數字?
# sender
number = str(2).zfill(4)
sending_socket.send(number)
# receiver
msg = receiving_socket.recv(4)
print msg
印刷味精出來是11
我嘗試發送的4個字符填充數字,但是當我送你如何通過Python套接字發送數字?
# sender
number = str(2).zfill(4)
sending_socket.send(number)
# receiver
msg = receiving_socket.recv(4)
print msg
印刷味精出來是11
你有什麼事情都沒有表現出我們的錯誤:
# 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'
是。我發送1並且它可以工作,然後2發送到11是否是緩衝區問題? – user784756
TCP是一個流媒體協議,因此它沒有消息邊界。同樣'send'和'recv'需要檢查它們的返回值,因爲它們可能不會發送或接收請求的金額。例如,您必須設計一個將此考慮在內的協議,並在數據中發送消息的大小。 –
查看我的另一個例子的答案:http://stackoverflow.com/a/9968240/235698。用一個演示問題的例子更新您的問題,我可以給出更好的答案。 –