小编fpe*_*mud的帖子

为什么不能同时绑定到0.0.0.0:80和192.168.1.1:80?

我的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)
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

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
Run Code Online (Sandbox Code Playgroud)

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.

python sockets linux

7
推荐指数
1
解决办法
6102
查看次数

标签 统计

linux ×1

python ×1

sockets ×1