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

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

编辑:说三道四文库 发布时间:2017-01-24 11:25
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
乐视发布新版智能电视操作系统LetvUI 2.3—Schnauzer 进步还是灾难的开始?科学家首次通过互联网实现“心灵感应” 叫板Apple TV 谷歌发布Chromecast的iOS应用 性能提升100倍的秘密武器:一行SQL代码的妙用 60个开发者不容错过的免费资源库 专门针对初学者的Node.js教程 初创公司Parse.ly:1年内捕获1.6亿独立访问用户,收入增5倍 融资新方式:用未来10年收入的6%融资10万美元 小米手机-HAXLR8on:创客32小时全纪实 图文:看苹果下一代iPhone细节 能吸引你购买吗? [开源推荐]Intention.js:通过HTML进行响应式开发 Android副总裁Hugo Barra将加盟小米 三星将召开首届开发者大会 推新SDK和S Pen 15个步骤创立技术公司,并收获千万用户(三) H3Cloud:为企业提供最优化IaaS方案 VMware、红帽对决云管理平台 大数据辅助决策,构建智慧城市 所见即所得:四款免编程移动游戏开发引擎推荐 PaaS乱局:Container的新机遇 IDC再度下调2013年全球PC销量预期 平板电脑中枪 Waze联合创始人做FeeX 用众包方式增加银行服务透明度 Ripple CTO Stefan Thomas:Bitcoin与未来支付应用开发 第二届Coding For Fun编程马拉松实时快报→→ 数字化你的脸:14个智能眼镜开发平台 Unite2013开发者大会:Unity新增多项重磅革新 微软大中华区副总裁谢恩伟:微软云+端应用模型前瞻 移动周报:从硬件马拉松到Barra加盟,本周小米很火 小而美的Diffbot:将Web页面转化为数据库,获多位科技大佬注资 “叙利亚电子军”对美国多家网站发起“电子制裁” 麻省理工TR35之IT界年轻有为创新者(上) Linux用户须知的16款实用软件 ejb的事务处理 有急事求救,关于如何在WIN2000下安装我的显卡的驱动程序! 寻找Visual C++!!! 请问如何创建DLL? 请教一个简单的问题?? 请问用什么程序打开.DLL类型的文件???????????? 关于linux上网的问题 利用SHAppBarMessage是否不能直接制作自动隐藏的工具栏的?? OleServer错误! 选中LISTBOX的ITEM的时候触发的是什么事件? 抢分问题,如何把一个TStream存入数据库中的某个字段里? 快,能者不难,难者不能 急寻数值计算类软件---(如水质模拟)!!! 怎样取得CEditView中所显示的文字啊? 告诉我好么! 在线程中可使用回调函数吗? Socket里面ShutDown和Close函数分别有什么作用? CBC和VC相比好在哪里?CBC也能调用一切API,相比之下VC简直不能做数据库.但为什么就是招VCVB的比招CBC的多? wwwunix(木易)大侠请来令分。多谢你的帮助。 :) 下载文件夹的选择 立早在不在,还你分~~~~~~~~~~~~~~~~~ widlcatbb领分 请问做数据库开发 外面招人用VB的多还是用Delphi cbc的多?到底哪个好? 在flash中如何将色块转为线条模式? 我的电脑启动后不断运行超级解霸,不知怎么回事? 请问做数据库开发 外面招人用VB的多还是用Delphi cbc的多?到底哪个好?? QQ号码被盗,请各位大虾救命啊.高分送上. 请高手帮忙!!!!!!!!!!!!!!!!! 复合数据窗口如何存为HTML文件? :请问做数据库开发 外面招人用VB的多还是用Delphi cbc的多?到底哪个好??VB的优势在哪里? 我用Table连接Access 数据库,程序运行时出现 Database Login窗口,它是干什么的? flash中如何将色块转为线条模式? 是一个什么样的标签! 送分!!!!!!vb基础疑难! 这段程序中的SETFILTER()在没有事务对象和数据对象没有连接就可以用该函数吗?见内地的程序 关于postmessage 绿茶兄,你能告诉我你的QQ号吗? 我的为14588854 【 jinesc(杂牌军司令)(杂牌军是人民军队)接着! 】 请问:好的搜索引擎有那些?有没有新的上传思路? 考中程需要看哪些书? c/s模式的系统是什么样的概念,具体如何实现 关于vc调用调用CView的问题? 用jsp 使用sqlserver还是mysql与ODBC/JDBC连接哪个更方便? 大家好!请各位帮我参考一下学java应该用那种开发工具最好呀?谢谢!! 关于FTP代理服务器 为什么会出现闪屏现象 请问reportbuild6是否支持ado呢? 奇怪的SetWindowPos!知情者请进 【 jinesc(杂牌军司令)(杂牌军是人民军队)你的贴呢? 】 如果我在查看中添加绘图工具栏,如何才能显示/隐藏绘图工具栏菜单? 我在SCO UNIX5.0.6中设置显卡的显示效果为800 * 600 & 64Kcolor , 但是... 请问怎样固定窗体在屏幕上的位置,用鼠标不能拖动?谢! 在金刚石晶体的一个晶胞中含有几个碳原子?二氧化硅晶体的一个晶胞中有几个化学键答案给的是18和32..没明白怎么算出来的 18那个好像就是查出来的,没用原子晶胞共有问题计算, 怎样来计算晶胞的密度,棱长,摩尔质量速求 求化学物质的密度FCC和BCC形式 金刚石晶胞中两个碳原子距离怎么表示?用109°28′吗 金刚石的晶胞是怎样的啊.具体一点.有几个C? 如何确定一未知晶体是FCC还是BCC结构 ALN晶胞有几个AL? 金刚石晶胞 二氧化硅晶胞金刚石晶胞,一个晶胞里有18个碳原子?我数只有10个…谁能附图解释一下?…二氧化硅晶胞,一个晶胞里有32个化学键?为何?求教,也有可能答案写错了,但我还是不懂, 邮件里面的"bcc"是什么意思? 碳化硅(SiC)的一种晶体具有累死金刚石的结构,其中碳原子和硅原子的位置是交替的,在下列三种晶体1.金刚石 2.晶体硅 3.碳化硅中,它们的熔点从高到低的顺序是? 金刚石与立方氮化硼的优点与用处 BCC是什么意思?谁告诉我? 碳化硅晶体的结构是什么样的 一个晶胞内有几个碳原子? 立方氮化硼的耐温是1200,那金刚石的是多少?温度具体点,几度 体心立方、面心立方、密排立方的滑移面、滑移方向、滑移系各有多少 金刚石是由碳原子所形成的正四面体结构向空间无限延伸而得到的具有空间网状结构的原子晶体.在立方体中,若一碳原子位于立方体中心,则与它直接相邻的四个碳原子位于该立方体互不相邻 金刚石刀片和立方氮化硼刀片如何区别 哪位高手能告诉我如何判断面心和体心立方的滑移面和滑移方向.很困惑啊.面心滑移方向{110} 滑移面{111} 体心滑移方向{111} 滑移面{110}是如何判断的?{}代表坐标吗?如何定义的?为什么面心立方 金刚石是由碳原子直接构成的吗 金刚石是碳的一种同位素吗? 面心立方,体心立方和密排六分晶体的滑移面和滑移方向分别是什么? 金刚石晶格可以破损是因为中间有原子破损,那如果金刚石所有原子都破损了呢?金刚石会不会全部破损呢?多长时间什么情况下才可以全部破损 最后 原子破损的难易程度和什么有关?原子键还 人工合成的晶体氮化碳为什么硬度比金刚石大金刚石是每个碳原子都以sp3杂化轨道与另外四个碳原子形成共价键,构成正四面体而C3N4是C原子sp3杂化,与4个处于4面体顶点的N原子形成共价键,而N 面心立方的12个滑移系是怎么确定的?面心立方金属的滑移面(密排面)为{111},共有4个,滑移方向为<110>,每个滑移面包含三个滑移方向,因此共有12个滑移系.怎么弄出来? 假如金刚石的晶格中一颗原子被其他元素所替代而呈色,那这个元素参与共价键吗?天天作业网的那个孩子赶紧滚回家喝奶 世界上什么物质比钻石还硬? 密排六方晶格为什么不是空间点阵?具体原因是什么?其它的晶格也都不是吗?还是仅仅密排六方的不是? 一颗钻石在常温环境下百万年后 失去光泽吗?比如原子衰变或晶格破损导致? 氮化碳是什么晶体?为什么硬度比金刚石的大? 晶格和点阵是什么关系 晶胞和晶格又有什么关系 另外标准浓度有什么意义一共有14个晶格,是不是每个晶格的顶点就是晶胞呢 假设一颗金刚石,晶格里包含氢原子和纯碳的晶格相比,硬度不如纯碳晶格的吗?1楼的当金刚石晶格产生缺陷时 会捕捉氢原子或其他原子填充晶格 金刚石结构问题1.碳原子个数与碳碳单键个数比2.一个碳原子被几个碳环共用 hcp晶体结构填充系数怎么计算?如果HCP可以计算的出,那么金刚石的填充系数又怎么计算呢? 晶格破损说明晶格失掉原子,那那颗原子去了哪里? BN和金刚石哪个更硬一点? hcp-4020x投影机与180寸幕布之间的距离,HCP-3580x与150寸幕布距离,HCP-3200X与120寸幕布距离 石墨与金刚石都是碳单质,为什么其颜色有这么大差别?难道光的反射与物体原子间的结构有关?石墨和金属都具有导电性,石墨与金属的性质差不多(柔软,固体,单质)是不是电阻的大小与其原 金刚石是有什么组成的?金刚石是有几个碳原子组成的?/ hcp是什么意思 铁碳合金的组元纯铁 在固态下随着温度的变化发生的晶格类型的转变里面的体心立方 和 面心立方是什么意思还有看不懂铁碳合金相图,理解不了,能指导下?谢谢 由碳原子构成的石墨、金刚石、碳60原子的物理性质为什么不同 金刚石是由什么构成的? cscl晶胞里有多少个结构单元 碳原子构成的金刚石就是一种——水分子是由——和——填空 立方氮化硼,金刚石 金刚石最简晶胞是什么 已知金刚石的晶胞如图,金刚石中C-C键长为1.55×10-8cm,求金刚石的晶体密度?小弟在线=答案阿(怎么也算不出3.47-3.5g/cm3)难道答案给错了? 立方氮化硼、金刚石哪个更硬为什么百度说立方氮化硼硬度略低于金刚石而199个侦探推理游戏中说立方氮化硼最硬 金刚石的结构上最小环上有六个碳原子,但每碳原子为几个环所共有? 怎样通过金刚石的晶体结构算出密度?(C-C键长0.115nm) 请问,金刚石研磨膏,和立方氮化硼研磨膏,分别使用磨削哪些材料? 金刚石和石墨的结构中碳原子的排列方式相同吗? 金刚石及具有金刚石结构的晶体是高中选修《物质的结构与性质》中的一道选作题,相关内容越多越好 请讲解晶体中四面体及八面体空隙的含义,谢谢! 在金刚石的网状结构中,碳原子数与共价键数之比是多少 晶胞密度如何计算 如何找出晶胞中的八面体、四面体、三角形空隙?卧式八面体需要找出两个平行反向的正三角形,一定要是正三角形吗?关于三角形空隙,不很懂.本人笔记上写着:密置单层 六方格子 三角形空隙 在金刚石的晶体结构中,一个碳原子被几个最小环共用 怎么求晶胞密度、体积 FCC金属、BCC金属、HCP金属,各指的是什么性质的金属?它们是怎么区分的?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn