协议寻址
2012-03-06 21:16
281 查看
IPv4寻址
在winsock中,应用程序通过SOCKADDR_IN结构来指定IP地址和服务端口信息,机构如下
sin_family必须使用AF_INET,以告知winsock此时正在使用iP地址族。
sin_port标识服务端口号
sin_addr字段把IPv4地址作为一个4字节的量存储起来,它是无符号长整数的数据类型。
inet_addr是一个实用的函数,可以把一个点分IP地址转换为一个32位无符号长整数
cp是一个空终止字符串,用于表示IP地址。
字节排序
下面4个API函数将一个数从主机字节顺序转换成网络字节顺序。
下面4个函数是上面的逆函数,把网络字节转换为主机字节
演示
在winsock中,应用程序通过SOCKADDR_IN结构来指定IP地址和服务端口信息,机构如下
struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; };
sin_family必须使用AF_INET,以告知winsock此时正在使用iP地址族。
sin_port标识服务端口号
sin_addr字段把IPv4地址作为一个4字节的量存储起来,它是无符号长整数的数据类型。
inet_addr是一个实用的函数,可以把一个点分IP地址转换为一个32位无符号长整数
unsigned long inet_addr(const char FAR *cp);
cp是一个空终止字符串,用于表示IP地址。
字节排序
下面4个API函数将一个数从主机字节顺序转换成网络字节顺序。
u_long htonl(u_long hostlong); int WSAHtonl(SOCKET s, u_long hostlong, u_long FAR *lpnslong); u_short htons(u_long hostshort); int WSAHtons(SOCKET s, u_short hostshort, u_short FAR * lpsshort);
下面4个函数是上面的逆函数,把网络字节转换为主机字节
u_long ntohl(u_long netlong); int WSANtohl(SOCKET s, u_long netlong, u_long FAR* lphostlong); u_short ntohs(u_short netshort); int WSANtohs(SOCKET s, u_short netshort, u_short FAR* lphostshort);
演示
SOCKADDR_IN InternetAddr; int nPortID = 5050; InternetAddr.sin_family = AF_INET; InternetAddr.sin_addr.s_addr = inet_addr("123.123.123.123"); InternetAddr.sin_port = htons(nPortID);
相关文章推荐
- 工业协议之1:数字可寻址照明协议-DALI总线的个人整理
- Winsock编程入门--2.寻址协议(IPv4)
- 【TCP/IP】IP:网际协议(寻址和路由)
- 实时传输协议(RTP)和实时控制协议(RTCP)
- SGIP协议之Deliver
- 达成谈判协议 - 避免操之过急
- 蓝牙协议
- 简介HTTP协议及及应用
- tuscany-sca绑定jms协议
- CMCC portal 协议wireshark 抓包分析
- 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
- android产品研发-应用内跳转协议scheme
- 接口=协议,抽象类=模板
- ISO网络协议分层及常见协议划分
- 可靠传输协议(RTP)--EIGRP
- GPSR协议移植
- HTTP协议通信过程
- 基于dubbo框架下的RPC通讯协议性能测试 (顶)
- http协议
- LLDP协议、STP协议 笔记