什么是端口endpoint
在进行网络通信时,需要知道三项:IP地址、通信协议、端口号,通信协议用来决定如何通信,IP地址和端口号用来进行确定目标,在Boost.Asio
中提供了对应的模型来一并表示这三项内容,就是端口:ip::basic_endpoint
包含了IP地址和端口号,并以通信协议类型为模板参数。可以直接使用的有:
ip::tcp::endpoint
ip::udp::endpoint
ip::icmp::endpoint
需要了解的内容
- 本地端口的构造
指定协议和端口号即可构造,通常用来接收新连接,例如:
tcp::endpoint local_ep(ip::tcp::v4(),1024);
- 远程端口的构造
在知道远程主机IP地址和端口号的情况下可以直接构造端口来进行通信,例如:
tcp::endpoint remote_ep(ip::address::from_string("127.0.0.1"),1024);
- 如何从主机名和服务名得到端口
需要使用DNS服务得到主机对应的IP地址,在Boost.Asio
中提供了ip::tcp::resolver
等来获取端口
总结
端口就相当于具体的地址,根据这个地址
来进行通信动作。