我编写了一个简单的客户端-服务器程序。我可以在客户端程序中打印客户端的端口号。这些值是动态的。
但是当我尝试在服务器程序中打印它时,它给了我服务器的端口号而不是客户端。
connfd = accept(listenfd, (struct sockaddr*) &cliaddr, &clilen);
cout<<"Server: Server's Port: "<< ntohs(servaddr.sin_port)<<endl; /*23112*/
cout<<"Server: Client's Port: "<< ntohs(cliaddr.sin_port)<<endl; /*23112*/
我在客户端程序中使用相同的,它正在正确打印随机端口。我以这种方式初始化它们:
struct sockaddr_in cliaddr, servaddr;
socklen_t clilen = sizeof(cliaddr);