小编han*_*ers的帖子

具有IPv6地址的Python TCP套接字失败

我试图使用IPv6地址绑定python tcp套接字。

self.__addr = ('fe80::224:d7ff:fe9d:9800', 5050)
self.__type = socket.AF_INTE6
self.__sock = socket.socket(self.__type, socket.SOCK_STREAM)
for family, _, _, _, sockaddr in socket.getaddrinfo( self.__addr[0], self.__addr[1], 0, 0, socket.SOL_TCP ):
    if family == self.__type:
        self.__addr = sockaddr
            break

self.__sock.bind( self.__addr )
self.__sock.listen(1)
Run Code Online (Sandbox Code Playgroud)

如其他解决方案中所述,我使用了来自socket.getaddrinfo()的结果,但始终会收到此错误:

self.__sock.bind( self.__addr )
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 22] Invalid argument
Run Code Online (Sandbox Code Playgroud)

这是我的网络接口的ifconfig结果

wlan0     Link encap:Ethernet  Hardware Adresse 00:24:d7:9d:98:00  
          inet Adresse:192.168.0.103  Bcast:192.168.0.255  Maske:255.255.255.0
          inet6-Adresse: fe80::224:d7ff:fe9d:9800/64
Run Code Online (Sandbox Code Playgroud)

知道为什么会发生此错误吗?

python sockets linux tcp ipv6

5
推荐指数
1
解决办法
1737
查看次数

标签 统计

ipv6 ×1

linux ×1

python ×1

sockets ×1

tcp ×1