我正在尝试编写一个Python二进制解码器/编码器,我一直在努力弄清楚如何在像eth0这样的以太网接口上运行它。这是我目前为客户端编写的代码:
import socket
port = 8888
host = 'localhost'
my_tuple = (host, port)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(my_tuple)
server_socket.listen()
client, address = server_socket.accept()
print("Connection from ", address)
message = client.recv(1024)
message = ' '.join('{0:08b}'.format(ord(i), 'b') for i in message.decode())
client.close()有什么方法可以在以太网接口上实现这个功能吗?
发布于 2021-08-15 04:20:23
您的以太网接口(eth0或其他),如果连接,可能会有一个IP地址与它相关联。尝试绑定到0.0.0.0或$IP地址。
因此,将host='localhost'替换为host='0.0.0.0',以便绑定到所有地址,或者让它绑定到特定的IP地址。
localhost是一个回送地址,因此只有同一台计算机上的客户端才能与侦听Localhost的程序进行对话。这通常用于内部守护进程,测试。
0.0.0.0告诉内核在上侦听与给定机器相关的所有 IP地址。
单独指定IP地址会指示内核侦听特定地址。如果您收听机器没有的地址,此呼叫将失败。
https://stackoverflow.com/questions/68788653
复制相似问题