
在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;
ushort port =
ntohs(addr.sin_port);
return 0;
}
总之,ushort类型在C++网络编程中主要用于表示和处理端口号。由于端口号范围有限(0-65535),因此使用ushort类型可以确保端口号的表示范围不会超出其合法值。