c – ntohl用于sin_port并获得负面的nubmers

我尝试在C中的服务器应用程序中打印客户端端口.
但我得到客户端端口的负数,有什么奇怪的行为: – /
任何人都知道哪里可能有问题?
导致问题的部分代码:

struct sockaddr_in client_address;
int chosenPort = (int) ntohl(client_address.sin_port);
pritf("Client port is %d, chosenPort");

我得到像-2121400320这样的端口.

最佳答案
使用ntohs()代替 – sin_port是一个16位值.

转载注明原文:c – ntohl用于sin_port并获得负面的nubmers - 代码日志