簡體   English   中英

在Python中使用s.recv()時出現奇怪的錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM