【发布时间】:2014-09-06 23:01:08
【问题描述】:
我尝试使用 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)
我使用了其他解决方案中提到的 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
这是我的网络接口的 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
知道为什么会出现这个错误吗?
【问题讨论】:
标签: python linux sockets tcp ipv6