在C中通过UDP UNIX套接字发送结构

在C中通过UDP UNIX套接字发送结构,c,sockets,struct,C,Sockets,Struct,我正在为一个使用C语言中的UNIX套接字的类编写一个客户机/服务器ftp程序。我必须将数据发送到我的教授让我们用来模拟网络流量(称为“troll”)的这个过程。它需要一个特殊的标题。所以我想尝试用头创建一个结构,然后将我的数据钉在上面。。。但是我的编译器一直给我这个错误 “无法转换为指针类型”(参考最后一行代码) 我不知道我做错了什么 /* make troll header */ struct sockaddr_in dest, troll; struct {

我正在为一个使用C语言中的UNIX套接字的类编写一个客户机/服务器ftp程序。我必须将数据发送到我的教授让我们用来模拟网络流量(称为“troll”)的这个过程。它需要一个特殊的标题。所以我想尝试用头创建一个结构,然后将我的数据钉在上面。。。但是我的编译器一直给我这个错误

“无法转换为指针类型”(参考最后一行代码)

我不知道我做错了什么

/* make troll header */
    struct sockaddr_in dest, troll;
    struct {
        struct sockaddr_in header;
        char body[MAXDATASIZE];
    } message;
    message.header.sin_family = htons(AF_INET);
    message.header.sin_port = htons(SERVER_PORT);
    bcopy((char *)&server_name.sin_addr, (char *)&message.header.sin_addr, sizeof(server_name.sin_addr));

    troll.sin_family = AF_INET;
    troll.sin_port = htons(TROLL_PORT);
    bcopy((char *)&name.sin_addr, (char *)&troll.sin_addr, sizeof(name.sin_addr));

    /* send mini_buffer to troll */
    memcpy(message.body, mini_buffer, MAXDATASIZE);

    int result = sendto(troll_sock, (char *) &message, sizeof(message), 0, (struct sockaddr *) troll, sizeof(troll));

您需要传递troll的地址,而不是对象本身。尝试:…(struct sockaddr*)(&troll)…

您需要传递troll的地址,而不是对象本身的地址。请尝试:…(struct sockaddr*)(&troll)