阅读量:0
在C++网络编程中,unsigned short
(通常简写为ushort
)类型主要用于表示端口号
以下是一些在C++网络编程中使用ushort
类型的场景:
- 创建套接字时指定端口号:
#include <sys/socket.h> #include <netinet/in.h> int main() { int sockfd = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in serv_addr; serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(8080); // 将端口号转换为网络字节序 serv_addr.sin_addr.s_addr = INADDR_ANY; bind(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)); return 0; }
- 客户端连接服务器时指定端口号:
#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int main() { int sockfd = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in serv_addr; serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(8080); // 将端口号转换为网络字节序 inet_pton(AF_INET, "192.168.1.1", &(serv_addr.sin_addr)); connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)); return 0; }
- 从套接字地址结构体中获取端口号:
#include <sys/socket.h> #include <netinet/in.h> int main() { struct sockaddr_in addr; // ... 假设已经填充了addr结构体 ushort port = ntohs(addr.sin_port); // 将网络字节序转换为主机字节序 return 0; }
总之,ushort
类型在C++网络编程中主要用于表示和处理端口号。由于端口号范围有限(0-65535),因此使用ushort
类型可以确保端口号的表示范围不会超出其合法值。