我正在使用Python绑定到应用程序中的多个端口,有时会收到“地址已在使用中”错误。
是否有任何方法可以获取导致此错误的端口号?
我查看了Exception对象(类型为socket.error
),但其中不包含地址号。
我还尝试为socket.error
分配一个自定义的Exception,但是它不起作用。
更新: 我知道在发送之前我已经有地址了,但是我有一个很大的代码库可以绑定到套接字,所以我不想在所有地方都进行更改。
只想知道是否可以在“异常”消息中获取它。
这里是一个例子:
import socket
sock1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock1.bind(('127.0.0.1', 1234))
sock2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock2.bind(('127.0.0.1', 1234))
执行此代码后,我得到:
OSError: [Errno 48] Address already in use
是否有可能在套接字级别覆盖它以获取类似消息
OSError: [Errno 48] Address already in use ('127.0.0.1', 1234)