【发布时间】:2013-06-22 20:48:01
【问题描述】:
我的python测试代码:
import socket
s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s1.bind(('192.168.1.1', 80))
s1.listen(5)
s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s2.bind(('0.0.0.0', 80))
s2.listen(5)
我收到了这个错误:
fpemud-workstation test # ./test.py
Traceback (most recent call last):
File "./test.py", line 11, in <module>
s2.bind(('0.0.0.0', 80))
File "/usr/lib64/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
192.168.1.1是我的eth0接口的ip地址。
我认为 0.0.0.0:80 和 192.168.1.1:80 应该能够共存。
具有 dst-addr 192.168.1.1 的数据包进入套接字 s1,具有其他 dst-addr 的数据包进入套接字 s2。
【问题讨论】:
-
因为在你运行这个的网络中,这台电脑的ip是192.168.1.1,和0.0.0.0和127.0.0.1一样,其实ip地址没关系,端口号有问题
-
尽管已经发布了答案,尝试绑定通配符套接字首先,然后绑定另一个