您的位置:首页 > 理论基础 > 计算机网络

网络编程 笔记(四) 地址族 数据序列

2015-10-13 17:37 309 查看
IP是Internet Protocol(网络协议)的简写,是为收发网络数据而分配给计算机的值。

IPv4(Internet Protocol version 4) 4字节地址族

IPv6(Internet Protocol version 6) 16字节地址族

路由器、交换机实际上也是一种计算机,用来完成外网与本网主机之间的数据交换。交换机比路由器功能要简单一些,实际用途差别不大。

端口号就是在同一操作系统内为区分不同套接字而设置的,因此无法将一个端口号分配给不同套接字。端口号由16位组成,可分配的端口号范围是0~65535;TCP和UDP套接字不会共用端口号,所以允许重复。

在通过网络传输数据时约定同一方式,这种约定称为网络字节序(Network Byte Order)非常简单–统一为大端序

大端序,高位字节存放到地位地址

小端序,高位字节存放到高位地址

字节序转换,转换字节序的函数

1、
unsigned short htons(unsigned short);


2、
unsigned short ntohs(unsigned short);


3、
unsigned long htonl(unsigned long);


4、
unsigned long ntohl(unsigned long);


5、htons中的h代表主机(host)字节序

6、htons中的n代表(network)字节序

7、s指short,l指long,linux中long类型占用4个字节

8、这句的意思是”把short型数据从主机字节序转化为网络字节序“。

函数
inet_addr(const char* string);


1、成功时返回32位大端序整数型值,失败时返回INADDR_NONE。

2、此函数在转换类型的同时进行网络字节序转换。

同一计算机中可以分配多个IP地址,实际IP地址的个数与计算机中安装的NIC的数量相等。若只有一个NIC,则直接使用INADDR_ANY
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: