簡単な TCP/IP ネットワーク アプリケーション (サーバーとクライアント) を作成しました。クライアントアプリのコードでは、これが好きで、Linuxで「g++ -o client client.cpp」でビルドしました。
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc, char* argv[])
{
struct sockaddr_in server_addr;
struct hostent* host;
....
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(nPort);
server_addr.sin_addr = *((struct in_ddr*)host->h_addr); /*It complains as below while building*/
....
}
client.cpp: 関数 'int main(int, char**)': client.cpp:56: エラー: 'operator=' が一致しません 'server_addr.sockaddr_in::sin_addr = *(in_ddr*)(* host ->hostent::h_addr_list)' /usr/include/netinet/in.h:138: 注: 候補は次のとおりです: in_addr& in_addr::operator=(const in_addr&) *エラー コード 1 clearmake: エラー: 「クライアントのスクリプトをビルドできませんでした」 "
私の実装で何が起こっていますか?