【发布时间】:2015-02-19 23:08:56
【问题描述】:
我正在尝试使用 Boost Asio 服务器的客户端端口。
我在这里放了一些带有相关信息的代码:
客户:
boost::asio::io_service io_service;
boost::asio::ip::tcp::socket client_socket(io_service);
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::connect(client_socket, resolver.resolve({"127.0.0.1", "50013" }));
服务器:
const int SERVER_PORT = 50013;
boost::asio::io_service io_service;
server(io_service, SERVER_PORT);
boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), SERVER_PORT);
boost::asio::ip::tcp::acceptor acceptor(io_service, endpoint);
boost::asio::ip::tcp::socket* socket = new boost::asio::ip::tcp::socket(io_service);
acceptor.accept(*socket);
我用指针声明了套接字,因为在我的代码中是函数。 然后在服务器中我有这样的东西,用于记录我的日志(我只粘贴了端口的一部分)。
unsigned short port = socket->remote_endpoint().port();
...
fprintf(pFile, "%hu\n",port);
...
我的问题是,在我的输出文件(fprintf)中,它出现的端口不是 50013。 具体出现:61964
我不明白为什么。
非常感谢!
【问题讨论】: