C++ boost asio如何知道服务器运行在哪个端口上?

C++ boost asio如何知道服务器运行在哪个端口上?,c++,networking,boost,boost-asio,C++,Networking,Boost,Boost Asio,因此,我浏览了asio教程,并编译了synchronious Day客户端和synchronious Day服务器。我正在服务器端玩代码,通过更改要通过命令行传入的端口(在站点代码中,它们硬编码13作为端口) 我注意到,只有当服务器在端口13上运行时,客户机才能连接,但有趣的是,客户机上没有说明服务器在哪个端口上 有人能给我解释一下这个程序是如何知道服务器运行在哪个端口上的,以及为什么它只对端口13起作用吗?这是服务器的代码 // //client.cpp // ~~~~~~~~~~ // //

因此,我浏览了asio教程,并编译了synchronious Day客户端和synchronious Day服务器。我正在服务器端玩代码,通过更改要通过命令行传入的端口(在站点代码中,它们硬编码13作为端口)

我注意到,只有当服务器在端口13上运行时,客户机才能连接,但有趣的是,客户机上没有说明服务器在哪个端口上

有人能给我解释一下这个程序是如何知道服务器运行在哪个端口上的,以及为什么它只对端口13起作用吗?这是服务器的代码

//
//client.cpp
// ~~~~~~~~~~
//
//版权所有(c)2003-2010克里斯托弗·M·科尔霍夫(克里斯在科尔霍夫网站)
//
//根据Boost软件许可证1.0版发布。(见附页)
//文件LICENSE_1_0.txt或复制到http://www.boost.org/LICENSE_1_0.txt)
//
#包括
#包括
#包括
使用boost::asio::ip::tcp;
int main(int argc,char*argv[])
{
尝试
{
如果(argc!=2)
{
标准:cerr
有趣的是,没有任何关于
客户端说服务器是什么端口
在

客户端中的服务器端口在此处硬编码:

tcp::resolver::query query(argv[1], "daytime");

密钥是“Daylay”。它的标准端口号为13

,因此,如果要将“Daylay”替换为“echo”或“http”,它将查找通常与echo或http服务器关联的端口?asio将在服务文件中查找服务名称。也可以使用端口文字,即“13”而不是“Daylay”@Ferruccio,如果可能的话,我认为这是一个很好的信息,可以直接输入到答案中。
tcp::resolver::query query(argv[1], "daytime");