使用socket跨网段通信
时间: 2023-09-17 22:13:57 浏览: 55
要在不同的网络段之间进行通信,需要使用Socket编程来实现。以下是一个简单的示例代码,用于在两个网络之间建立TCP连接:
```python
import socket
# 服务器端
HOST = '0.0.0.0' # 监听所有网络接口
PORT = 8000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data: break
conn.sendall(data)
conn.close()
# 客户端
HOST = '192.168.1.100' # 远程服务器的IP地址
PORT = 8000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
s.close()
print('Received', repr(data))
```
在这个示例中,服务器端绑定在0.0.0.0地址和8000端口上,监听来自任意网络接口的连接请求。客户端连接到服务器的IP地址为192.168.1.100,端口为8000的TCP服务器。客户端发送一条消息,服务器将其返回,并关闭连接。