私はこれまでに尋ねたことを見ましたが、うまくいきませんでした。その情報を他のクライアントに転送するために、私のサーバが接続されているコンピュータの明示的なIPアドレス(123.456.789.100)とPORT番号を取得する必要があります。私はWinSock2.hをWindows 7(Home Premium)、Visual Studio 2010 Professional上で使用しています。これは「C++コンソールアプリケーション」です。これはTCP接続です。 はここで、これまでに私のコードです:Windowsソケット(C++)から接続ホストのIPアドレスを取得するにはどうすればよいですか?
sockaddr_in* addr = new sockaddr_in;
int addrsize = sizeof(addr);
getsockname(clientSock, (sockaddr*)addr, &addrsize);
char* ip = inet_ntoa(addr->sin_addr);
int port = addr->sin_port;
printf("IP: %s ... PORT:%d\n", ip, port);
これは常にたびにIPのために私に205.205.205.205を与え、PORT用52685。私はgethostbynameを含む代替案を試しましたが、実際のIP自体が必要です。 getsockname()の代わりにgetpeername()も試しましたが、結果は同じでした。私はルータの背後にありますが、私はこれまで同じマシン上でサーバとクライアントの両方を使用しています。
ご協力いただきありがとうございます!
はい、あなたは正しく、エラーを投げていて、私はそれをチェックしていません。非常にありがとう、あなたの解決策は働いた。 – Sefu