我正在为一个在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));

最佳答案

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

关于c - 通过C中的UDP UNIX套接字发送结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4858741/

10-12 19:16