[英]Odd error when using s.recv() in Python
我正在制作一個需要從服務器接收連接哈希的程序。 我用的時候:
connhash = s.recv(1024)
我收到此錯誤:
[Errno 10054] An existing connection was forcibly closed by the remote host
這是我的錯還是服務器故障?
以下是一些導致s.recv()的代碼
stringfmt = u'%(user)s;%(host)s:%(port)d'
string = stringfmt % data
structfmt = '!bh'
encoded = string.encode('utf-16BE')
packetbytes = struct.pack(structfmt, 2, len(encoded))+encoded
s.send(packetbytes)
connhash = s.recv(1024)
我使用的是Python v 2.7
編輯:這是為了我的世界,所以你知道。
聽起來好像遠程服務器不喜歡你的連接並切斷你。 這可能意味着您已經犯了協議錯誤(即,您發送的命令不正確),或者您可能沒有成功登錄,或者您的IP可能已被禁止,或許多其他類似的事情。
要調試它,您可以嘗試使用telnet之類的東西來復制連接並查看錯誤發生的位置(如果沒有,那么您的實現有問題;如果有,那么您對此的理解有問題。協議,或者您被阻止使用服務器)。
或者,使用像Wireshark這樣的數據包捕獲工具來查看正在發送和接收的數據包,並查看是否顯示問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.