gpt4 book ai didi

c++ - Boost Socket/Acceptor 无法在同一端口上监听/连接?

转载 作者:行者123 更新时间:2023-11-30 03:05:13 26 4
gpt4 key购买 nike

我对 Boost 有点陌生,但我正在尝试创建一个服务器,它可以在给定端口上接受来自客户端的连接。该服务器还应该能够在同一端口上写入客户端。

但是,当我尝试使用 acceptor_.bind() 来实现两者时/acceptor_.listen()以及socket_.connect(*iterator) async_accept()因无效函数错误而失败。

如果我只使用 acceptor_.bind() , acceptor_.listen()我可以使用 async_write() 写入套接字(从服务器到客户端) .

如果我只使用 socket_.connect() (但注释掉 acceptor_.bind()acceptor_.listen() )我可以使用 async_read_some() 从套接字(从客户端发送到服务器的数据)中读取数据.

我需要创建一个单独的套接字对象还是选择另一个端口?我已将重用地址启用设置为 True。

最佳答案

为什么要尝试 connect() 到已经连接到您的服务器的客户端?只需写入该连接已接受的现有套接字。

如果您必须connect() 与客户端建立第二个连接(例如,就像 FTP 协议(protocol)对数据传输所做的那样),那么不要指定一个端口来绑定(bind)该套接字。让操作系统决定要使用的合适端口。

关于c++ - Boost Socket/Acceptor 无法在同一端口上监听/连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7921055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com