博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
boost库在工作(26)网络客户端之一
阅读量:4162 次
发布时间:2019-05-26

本文共 1540 字,大约阅读时间需要 5 分钟。

说到网络,就立即回想到1997年那时,上网只是为了收发一下EMAIL,没有别的事情可做,并且大多数还是连接成局部网的情况。在局部网时,在一个计算机房里,最多只有10多台电脑联机,这样的局部网只能干一件事情,就是玩多人网络游戏,这个多人只支持4个人一起玩。随着时间推进,到1999年时就可以上网看新闻和使用QQ了,这时网络主要用来聊天,玩游戏的机会不多,做别的事情也不行,因为网络的速度很慢。到了2005年左右,网络终于快起来了,这时网络都使用ADSL连接了,带宽有1M左右,这时就可以玩网络游戏没有太大问题,看网上新闻和办公都可行了。到目前,网络的带宽都有4M以上了,看电影、看电视、打网络电话,网上购物已经大行其道。随着电商推进,网络已经深入地影响所有人的生活方方面面。比如,可以异地购物,在深圳这边可以在网上下一个礼物的订单,把礼物直接送给北京的朋友。不再需要在深圳这边的商场购物再快递出去。又比如通过移动网络的叫出租车软件,正在改变出租车行业的方方面面。以前出租车在大街上不断地,没有目标地转来转去,既没有提高收益,也没有节能环保。通过目前手机上打出租车软件和手机GPS定位的功能,可以很容易安排行车路线,提高出租车效率,也提高社会资源的利用率,更加可以减少能源消耗,更加环保了。可见,网络是一个彻底地改变人们生活方方面面的工具,以前很多不可能的事情,目前都变成可能,变得更加有效地提高生产力。

 

既然网络那么重要,网络的开发工作也变成重头戏,在boost库里会把网络的开发工作变得比较简单,变得功能比较强大,模式比较清晰。网络组成的方式有很多种,比如X25网络、CAN网络、TCP/IP网络。在这里主要介绍和学习是TCP/IP网络,由于目前这种网络的方式,已经是事实上的标准方式。TCP/IP网络里,要表示一个端点是通过IP地址来表现的,但IP地址对于不懂底层网络的人来说,是比较难记住的,因此人们给IP地址起一个名称,就叫做域名。在一台主机里,网络又可以提供多个服务,每个服务通过端口来表示,当然也会给端口起一个名称叫服务名称。在IP地址和域名之间相互的转换,就叫做域名解释。为了把人们容易记住的IP地址字符串和域名转换成网络底层的表示,在boost库里引入了一个类boost::asio::ip::tcp::resolver::query,用这个类来保存IP地址、域名、IP地址的类型、主机的端口或服务名称。如下面的例子:

// boost_019.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include 
#include
//测试网络服务查询void Test(void){ boost::asio::ip::tcp::resolver::query query("www.boost.org", "http"); std::cout << "host_name: " << query.host_name() << " service_name:" << query.service_name() << std::endl;}int _tmain(int argc, _TCHAR* argv[]){ Test(); system("pause"); return 0;}
在上面的例子里:query对象就是用来保存域名www.boost.org和服务名称http,这样就把人们容易记住的方式保存起来了,但这样并不能直接交给网络的底层去使用,还需进行转换才可以。要想知道如何转换,请看后面的例子。

转载地址:http://koixi.baihongyu.com/

你可能感兴趣的文章
Ubuntu Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)
查看>>
C#入门
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
异常 Java学习Day_15
查看>>
Mysql初始化的命令
查看>>
浅谈HTML
查看>>
css基础
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>