根据我的理解,套接字只是一种方式,A只能发送数据 到B,如果B需要向A发送数据,然后在另一个上发送另一个套接字 端口需要打开。
正如评论中的几个人已经提到的,TCP套接字是双向的,你可以将它用于双向通信。应用程序必须以双方互相理解的方式进行编码。
从这一点开始,从站可以接收要从连接处理的数据 在'data_reception_port'上,它可以要求从a处理新数据 'data_request_port'上的连接
一旦您将应用程序模型更改为上述方式,您就不再需要使用两个单独的端口/连接进行通信。
我在这里看到的唯一问题是,如果2个奴隶试图连接到 同时,但在每个从站上使用while循环很容易修复 休息5秒钟,重新尝试连接。
请阅读Socket通信中的待办事项。如果传入请求的计数大于此时可以提供的请求数,则请求将排队(队列中等待的确切请求数取决于backlog参数)。校验 的文件 socket.listen([backlog]) 功能 欲获得更多信息。
socket.listen([backlog])
我希望这回答了你的问题。如有任何混淆,请随时查询。