【发布时间】:2017-01-12 20:05:09
【问题描述】:
我正在使用 asio 在 C++ 中重写一个 python 扭曲服务器。我已经从
中设置了以下示例http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/tutorial.html:
Daytime.1 - 同步 TCP 日间客户端
Daytime.3 - 一个异步 TCP 日间服务器
而且它们似乎运行正常。然而,令我困惑的是,当我创建扭曲服务器时,它和客户端都需要明确指定 IP 地址和端口号。我在这里的体验略有不同:
- 在客户端应用程序上,不需要指定端口号。我可以通过仅使用 127.0.0.1 作为命令行参数成功连接到服务器。
- 此外,只要第一个字节是 127(例如 127.1.2.3 连接),我似乎能够使用此 IP 地址的任何合法变体连接到同一台服务器。
- 客户端代码中有一个文字指定使用我认为是操作系统提供的“白天”TCP 服务进行连接。但是,服务器代码中没有对此的引用。为什么我必须指定要连接的特定服务?我还怀疑这项服务可能与第 1 点和第 2 点中的行为有关。
现在我知道服务器有一个接受器套接字侦听,它仅在收到请求后才建立连接,但我想在这里了解更多详细信息。
【问题讨论】:
标签: tcp boost-asio