首页 > 解决方案 > 是否可以同时绑定两个套接字端口并在 localhost 之间设置旁路连接

问题描述

我有一个客户端-服务器套接字程序正在运行,但具有不同的 TCP 端口。我正在使用 python 脚本来监听来自客户端的数据,例如 socket#5254,然后将数据发送到 socket#5255 的服务器。稍后,将使用 over socket 数据并将其发送到 SMBus 上的设备使用试验机中的工具。首先是使用 Data-over-Socket 连接测试桥接模式。Scipt 如下所示。问题:如何在主机中同时绑定两个端口(使用Windows 10 PC)?

import socket, time
TIMEOUT = 60*1000  # timeout 1 minutes 60*1000 ms'
req = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
req.bind(('localhost', 5254))
req.listen()
req_conn, req_addr = req.accept()
with req_conn:
   print('Connected by', req_addr)

res = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
res.bind(('localhost', 5255))
res.listen()
res_conn, res_addr = res.accept()
with res_conn:
  print('Connected by', res_addr)

while True:
  t = 0
  req_data = req_conn.recv(1024)
  req_conn.sendall(res_data)
  res_data = res_conn.recv(1024)
  res_conn.sendall(req_data)
  time.sleep(0.001) # delay 0.001 second
  if t >= TIMEOUT: break
req.close()
res.close()

当我使用两个端口 5253/5254 分别运行客户端和服务器程序时,脚本在第一次连接后停止。绑定两个套接字端口并在 Python 中设置它们之间的旁路桥连接的正确方法是什么(使用 Python 3.6)?

标签: pythonsockets

解决方案


推荐阅读