在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
類型可以確保端口號的表示范圍不會超出其合法值。