2013-04-10 54 views
0

我写了一个简单的TCP/IP网络应用程序(服务器和客户端)。在客户端应用程序的代码,我不喜欢这样,然后用“G ++ -o客户client.cpp” Linux下建立。/usr/include/netinet/in.h:138:注意:应聘者是:in_addr&in_addr :: operator =(const in_addr&)

#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主(INT,字符**)': client.cpp:56:错误:不对应的 '运营商=' 在“server_addr.sockaddr_in :: sin_addr = *(in_ddr *)(*宿主> hostent :: h_addr_list)” /usr/include/netinet/in.h:138:注意:候选是:一个in_addr &一个in_addr ::运算符=(const的一个in_addr &) *错误代码1个 clearmake:错误:构建脚本失败“客户”

发生了什么事我implementaion?

回答

0

您正在尝试设置地址列表作为一个地址。你会想用括号来引用你想要的地址。 host->h_addr_list[0]

至少这就是我从你的错误得到。

Reference sources