サーバーソケットに接続されたクライアントのIPとポートを取得しようとしています。次の関数クライアント ソケット ファイル記述子を渡しましたが、0.0.0.0: 0 が返されました。
PS が返すアドレス長は 16 です。関数によって返される結果は 0 です。エラーは発生しません。
void SocketServer::Log ( int socketFD , string message )
{
struct sockaddr address;
socklen_t addressLength;
struct sockaddr_in* addressInternet;
string ip;
int port;
int result = getpeername ( socketFD , &address , &addressLength );
cout << "Address length is " << addressLength << " Return is " << result << "\n";
addressInternet = (struct sockaddr_in*)&address;
ip = inet_ntoa ( addressInternet->sin_addr );
port = ntohs ( addressInternet->sin_port );
cout << "Socket FD is " << socketFD << " " << ip << ":" << port << " " << message << "\n";
};