winsock を使用してピアツーピア通信を実現しようとしていますが、gethostbyaddr
常に NULL を返します。これはローカルホストでのみ機能し、server_name は宛先 IP アドレスです。
server_name="<--ipaddress-->"
struct sockaddr_in server;
addr = inet_addr(server_name);
cout<<"inet_addr(server_name) "<<addr<<endl;
hp = gethostbyaddr((char *)&addr, 4, AF_INET);
memset(&server, 0, sizeof(server));
memcpy(&(server.sin_addr), hp->h_addr, hp->h_length);
server.sin_family = hp->h_addrtype;
server.sin_port = htons(port);
conn_socket = socket(AF_INET, socket_type, 0);
connect(conn_socket, (struct sockaddr*)&server, sizeof(server))
Python を使用して既に p2p 通信を実現しており、同じポート番号とアドレスで完全に正常に動作します..手がかりをありがとう..
C ++でそれを行う方法がわかりません.pythonで bind(---) を使用しました。