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