linux系统搜索文件命令(Linux Socket编程(不限Linux) 吴秦 博客园)
Linux Socket编程(不限Linux)
2010-12-12 21:58
by
吴秦,
28238
阅读,
25评论,
收藏,
编辑socket一词的起源
在组网领域的首次使用是在1970年2月12日发布的文献IETF RFC33中发现的 ,撰写者为Stephen Carr 、Steve Crocker和Vint Cerf 。根据美国计算机历史博物馆的记载 ,Croker写道:“命名空间的元素都可称为套接字接口 。一个套接字接口构成一个连接的一端 ,而一个连接可完全由一对套接字接口规定 。 ”计算机历史博物馆补充道:“这比BSD的套接字接口定义早了大约12年 。 ”
网络字节序与主机字节序
主机字节序就是我们平常说的大端和小端模式:不同的CPU有不同的字节序类型 ,这些字节序是指整数在内存中保存的顺序 ,这个叫做主机序 。引用标准的Big-Endian和Little-Endian的定义如下:
a) Little-Endian就是低位字节排放在内存的低地址端 ,高位字节排放在内存的高地址端 。
b) Big-Endian就是高位字节排放在内存的低地址端 ,低位字节排放在内存的高地址端 。
网络字节序:4个字节的32 bit值以下面的次序传输:首先是0~7bit ,其次8~15bit ,然后16~23bit ,最后是24~31bit 。这种传输次序称作大端字节序 。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序 ,因此它又称作网络字节序 。字节序 ,顾名思义字节的顺序,就是大于一个字节类型的数据在内存中的存放顺序 ,一个字节的数据没有顺序的问题了 。
所以:在将一个地址绑定到socket的时候 ,请先将主机字节序转换成为网络字节序,而不要假定主机字节序跟网络字节序一样使用的是Big-Endian 。由于这个问题曾引发过血案!公司项目代码中由于存在这个问题 ,导致了很多莫名其妙的问题 ,所以请谨记对主机字节序不要做任何假定 ,务必将其转化为网络字节序再赋给socket。
总结:客户端的connect在三次握手的第二个次返回 ,而服务器端的accept在三次握手的第三次返回 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!