簡體   English   中英

AttributeError: '_socketobject' 對象沒有屬性 'error'

[英]AttributeError: '_socketobject' object has no attribute 'error'

我正在使用 python 2.7。 在該代碼中,listen_list 是一個包含 UDP 和 TCP 套接字的列表,並且當 TCP 套接字關閉時必須發生錯誤,因為客戶端與服務器斷開連接。 我不知道,因為在程序的其他部分錯誤是可以的,但在這一行中我得到了那個錯誤。

import sys #for exit
import socket #for sockets
import select

listen_list = copy.copy(UDPlist) #list with listening udp sockets
listen_list.append(mySocket) #mySocket is a TCP socket for connect with client
try:
    rlist, wlist, elist = select.select(listen_list, [], [], 5)
except socket.error:
   print 'Failed. There is some socket that is invalid'
   listen_list = delete()
   continue

當我運行服務器時,它會一直工作,直到遇到此錯誤

File "server.py", line 67, in <module>
except socket.error:
AttributeError: '_socketobject' object has no attribute 'error'

_socketobject是由所指類型socket.socket 錯誤消息顯示在代碼中的某處, socket綁定到socket.socket一個實例,隱藏了模塊。

>>> import socket
>>> socket = socket.socket()   # this happens somewhere in your code
>>> socket.error
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: '_socketobject' object has no attribute 'error'

刪除對socket的分配,例如選擇不同的名稱,以使模塊及其內容可訪問。

>>> import socket
>>> some_socket = socket.socket()   # this should be done instead
>>> socket.error
<class 'socket.error'>

如文檔中所述,socket.error 已被棄用,因為 Python 3.3 和 OSError 被引發。

從 Python 3.3 開始,與套接字或地址語義相關的錯誤引發 OSError 或其子類之一(它們曾經引發 socket.error)。

查看https://docs.python.org/3/library/socket.html了解更多詳情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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