说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

刚开始学习WinSocket ,对一些基础知识不太理解,请指点

编辑:说三道四文库 发布时间:2017-12-16 05:32
HTML文档下载 WORD文档下载 PDF文档下载
htonl()、ntohl()这两个函数我不清楚,
书上说:
htonl函数是把主机字节顺序转换成网络字节顺序。
主机字节顺序、网络字节顺序各是什么意思?
谢谢
inter86处理器上,用“小头”形式来表示多字节编号,字节的排序是从最无意义的字节到最有意义的字节,在计算机中把ip地址和端口号指定成多字节数时,这个数就按“主机字节”顺序来表示,但是如果在网络上指定ip地址和端口号,必须用“大头”顺序来表示,从最有意义的字节到最无意义的字节,一般称为网络字节顺序
是指数据流中以每八位为一单位(Octet)的排列顺序。本机的数据存储方式有所谓Big-endian和Little-endian之分,即多字节中高字节与低字节的存储顺序如何安排,可能与TCP/IP规定的不一样,所以用这两个函数来调整。
请举个例子:
202.111.121.011   这个ip地址是不是就是网络字节顺序?
网络中除了TCP\IP之外,还有很多的协议,他们各有各的主机字节顺序,所以为了让数据在网络上流通,被使用各种协议的机子认到,所以要转换成每台机子都认得到的网络字节顺序。然后本地机再转换成符合自己机子协议的主机字节顺序。
202。111。121。011是主机字节顺序。而且要用inet_addr才能转换成网络字节顺序
《windows网络编程技术》中讲到:
“inter86处理器上,用“小头”形式来表示多字节编号,字节的排序是从最无意义的字节到最有意义的字节,在计算机中把ip地址和端口号指定成多字节数时,这个数就按“主机字节”顺序来表示,但是如果在网络上指定ip地址和端口号,"互连网联网标准"指定多字节值必须用“大头”顺序来表示,从最有意义的字节到最无意义的字节,一般称为网络字节顺序 。”

请问其中的“大头、小头”形式是什么样子的?请举例。
请举各主机字节转换到网络字节顺序的例子,谢谢
再加30分
please
please
?
?
   不同的型号的机子有时会用不同的字节顺序存储数据。例如,Intel机器和
Macintosh(摩托罗拉)机器就用相反的顺序存储数据。Inter的字节顺序成为
"little-Endian(小头)",反之Macintosh用的字节顺序成为"big-Endian(大头)".

   小头顺序指最有意义的字节方在最左边,而大头顺序指最有意义的字节方在最右边。
   主机字节顺序是"小头",网络字节顺序是"大头"。

   因此"172.18.196.52"是个主机字节顺序,因为172是用来区分IP地址的类别的,显然
是最有意义的,但"172.18.196.52"还不能用htonl函数来转换,因为它只是个字符串,
要用inet_addr()来转换成网络字节顺序。

    在下面两种情况下,你发数据时,必须将主机字节顺序转换成网络字节顺序:
    (1)你传送的数据是端口号或IP地址
    (2)如果你将要通信的服务器软件不是用MFC做的(并且你没有它的原代码),而
         这两台机器又用不同的字节顺序
    
谢谢 caiyi9000(翼翼) 

请问: 
我ping了sohu的主机,显示 :   61.135.131.6 
这里显示的是不是网络字节吧?
那转换成主机字节是多少?
我在ie中敲击我   61.135.131.6    就可以访问sohu.

其实他是个主机字节,传到网络中,就改变成了网络字节了。对不对?
我在本机中用主机字节就可以转成网络字节吗
操作系统实现Ping命令,以及IE在发送HTTP请求建立连接时,已经为你实现了转换。
比如,

const char* pIp="192.168.1.6";

unsigned long ulIP = inet_addr(pIP);//ulIP是主机序

unsigned long ulIP_network = htonl(ulIP);//这里ulIP_network就是网络序

char* pcHost=NULL;
pcHost=inet_ntoa(ulIP_network);//得到的pchost所指向的“6.1.168.192”

pcHost = inet_ntoa(ulIP); //这里,pcHost指向“192.168.1.6"

懂了吗?
谢谢你们的解答,下面是我的理解:

    例如: sohu :  61.135.131.6

const char* Ip="61.135.131.6";  //字符串(主机顺序)必须用inet_addr来转换为网络字节顺序
   unsigned long ulIP =inet_addr(Ip);//ulIP现在是网络字节顺序

运行后:
   Ip:   0x004153f0
     ulIP:    109283133

************

   u_long a=1212;         //端口为1212 ,数字(主机顺序)应该用htonl转换为网络字节顺序
unsigned long b = htonl(a);//这里b就是网络序

运行后:
    a:        1212
    b:        3154378752       //端口号为1212的网络顺序的表示形式

inet_addr 和 htonl 的功能是一样的,都是把参数由主机顺序转换为网络字节顺序,不同的是所对应的参数不同。一个是转换字符传,一个是数字。   (同理,网络顺序转换成主机顺序也是用另外两个相对应得函数)

是不是一般情况下,写程序,因为网络联系需要ip和端口号,所以程序同时都要用到这两个函数?  
我的理解对吗?  
ask
please
ISC2013专家云集,畅谈全球网络安全 CTO俱乐部第109期下午茶:数据库之分久必合,合久必分 CloudConvert:支持移动应用的格式转化服务 Angular.js VS. Ember.js:谁将成为Web开发的新宠? 斯卡利沉寂多年后首谈乔布 他的离开错在董事会不在我 CTO如何避免决策失控(二):遭遇棘手问题的七种迹象 微软面向开发者提前发布Windows 8.1 安抚不满情绪 PostgreSQL 9.3发布,可靠性、可用性获得较大提升! Web设计的新宠儿:卡片式设计 LSI:从“计算”架构到“数据流”架构的变迁 [开源推荐]TurboGears:一站式的Python开发框架集合 腾讯云公测终究还是来了 BAT云大战将开启? iOS 7将从这三方面影响IT界 超越Google,他企图将整个互联网塞进1台电脑 2013互联网安全大会议题先睹为快之CSA中国理事赵粮 移动建站工具(二):分秒钟DIY一个移动网站 2013上半年中国移动互联网报告,在线完整版 iOS开发者必备:九大设计类工具 已到“迟暮之年”?微软投资者提议两“救世主”外部候选 【SDCC讲师专访】Joseph G. Brown:云带来的软件销售方式变革 用户界面设计攻略:设计师需注意的九大要点 Google Glass的竞争对手来了:看YC演示日的五款新孵化项目! GPU Saturday技术沙龙:OpenCL程序员眼中的下一代APU架构 黑帽大会演讲中国第一人:从攻到防,从白帽黑客到创业者 15个步骤创立技术公司,并收获千万用户(完结) CTO容易犯的三大错误 谷歌艺术计划:互联网能否取代真实的博物馆? Hadoop技术沙龙:Hortonworks技术研发总监展望Hadoop 2.0 Marissa Mayer:雅虎月活跃用户增长了20%达8亿 移动用户3.5亿 气死偷车贼:脑电波防盗技术,让偷车贼无计可施 TIOBE 2013年9月编程语言排行榜:Transact-SQL首次进入前十 谁有英文版的FLASH和DREAMWEAVER!! 那里有C#的电子书下载呀 新手提问,关于SQL数据库的连接代码 在unix下的ftp问题 一个简单的问题 jbuilder中的Tools->Configure Servers的对话框中没有JBoss 3.X,如何是好? SqlServer数据库的备份问题 在线求助ReportBulider如何做这样的报表? 怎样得到用户表名? 大家好帮忙啊 ——————在线等待!! 直接访问操作符"." 和间接访问操作符"->" 有什么区别 数据库优化的问题 一个文本框,有一个验证控件(判断是否为数字),还有一个textchanged事件,这是一个矛盾的东西,让我头疼~~ interface中的uses语句和implemetation中的uses语句有何不同? XP个人单机服务器配置后访问需要帐号密码,怎么办 干得不开心,想转行,大家给点建议 如何实现“让用户自定义快捷键?” 怎么样把.aspx制作成安装的文件?? 我写了如下一个方法,但是用起来有问题,帮我看看!! 俺倒~~~~~~~~`怎么能上三星啊? 向高手求救:如何得到一张表的行数和列数!! 散分!代码解读! 使用sybase时的提示The query and the views in it exceed the limit of 16 tables. 有办法解决吗? 如何将数组的内容添加到一个文件的末尾 怎样才能打开一个489K的.DAT文件? 列表框(ClistCtrl)如何得到选中项的文本内容和选中项的索引值 为什么我登录到Oracle Management Server时老出错。(oracle 9i) 这样的sql语句怎么写呢?急啊!(还可以加分) pb中截取字符串的问题:急,在线等待 急,在VC++.Net中怎样将字符串System::String类型转换为LPSTR类型? 用PQ把NTFS转换成FAT32时,文件名全变名问号了,怎么办?!!!!!!!!!! 又是回车符的问题,急!!!!! 关于工具栏的问题 控件的DragMode为dmAutomatic,不能用鼠标点? 奇怪的电脑时钟 系统不支持本地交互式登陆 ListView的小问题 有责任感的中国人(水均益:我来谈京沪高速铁路 ),顶者有分!200分 如何给MDI窗口设置背景图? 如何使数据按我定义的顺序显示出来 请教,我有一个toolbar,上面有四个toolbutton,问题! 关于按钮的小问题 追加记录思路 TemplatePower控件谁用过,Delphi下做网页报告的,在Builder上装不上 如何在MIDP中保存小数? 关于窗口设计 有责任感的中国人(水均益:我来谈京沪高速铁路 ),顶者有分!200分! 这里没有人关心Yokun吗?还是大家都在闭门造车? XP服务器安装后访问需密码,,该如何设置? 关于dc,hdc,getdc和pchar()的问题 急~~~在线等 某校七年级二班的同学在学习 商鞅变法 这课中,表演了一出历史短剧.下列各项,错A 甲同学扮演秦孝公商鞅主持变法B 亿同学边缘生产粮食布锦多的人获得奖励C 丙同学扮演获得军功德大奖接 一个60公斤的人在一个电梯中间点站着,电梯匀速上升或下降 四个角在过程中受力分别为多少 电梯1.5m/s 【急】【有分】把你遇到的困难和解决困难的过程写成一篇小作文,300字左右把你遇到的困难和解决困难的过程写成一篇小作文,300字左右,侧重心理描写.我们的这个题目是在语文作业上的.我 翻译:First,setup“Network Topology configuration”Start with “Interface” fullinstaller.可以删除吗可以删是吧 尺寸造句怎么写 Solaris 心跳线 报错 ospid 10063:network interface with IP address 10.0.0.2no longer operational数据库是oracle10g 写一篇遇到困难并解决困难的作文(不少于200字) Interface with commercial account officers 么意思? 规格怎么造句 intelligent network interface card 《行尸走肉第四季》图揭丧尸化妆过程 渲染中国威胁 试图拉俄入伙 日美媒体张静初获新片导演背后搂腰娇羞笑建立夺岛部队 加强两栖训练 日自卫队克里强调美沙关系战略意义 两国关系或美联储官员称不急于缩减购债 将取决于美国务卿克里访问沙特 跟小宝宝“握脚美媒:28%美国人视中国为全球头号经日本“2 2”会谈企图拉拢俄罗斯牵制美为击毙塔利班头目辩护 称与巴基斯坦美联储官员称不急于缩减购债 将取决于《外公芳龄38》将上映陈妍希变时尚“北汽主场惜败浙江今冬遇极寒天气将限气保供本市打造国内外 资源共享平台自称“拒追热点”《欢脱定律》上线获270张选举人票便可胜出宁泽涛距离中国游泳队渐行渐远智能啤酒杯 测出你喜好326件文物揭秘孙中山一生禁设营利性小学初中不会使民办学校退出中国作协取消三名落马官员会籍篡宋灭元皇域匪途无尽妖血超级游戏商店系统来自无限世界的男人磊落青衫行大武侠世界七星自由记之侠客豪情暗黑审判斗神武装红楼艺文苑旅游御河五龙桥旅游石象生武将旅游明孝陵神功圣德碑旅游马峦山旅游太湖源旅游天目山旅游坎儿井乐园旅游哈密贡瓜园旅游莲湖公园旅游天下第一锅旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘