我定义了这样的结构(以及其他字段,但它们与问题无关)
typedef struct {
struct sockaddr_in addr_destination;
}MY_PACKET;
主要调用函数send_command
struct sockaddr_in *addr_server;
socklen_t addr_server_lenght;
MY_PACKET command_packet;
void send_command(char *comm, int socket_file_descriptor, struct sockaddr_in *server_address) {
addr_server = server_address;
addr_server_lenght = sizeof(*addr_server);
printf("Server address: %s\n", inet_ntoa(addr_server->sin_addr));
command_packet.addr_destination = *addr_server;
printf("Server address: %s\n", inet_ntoa(command_packet.addr_destination.sin_addr));
}
所以第一个printf打印" 127.0.0.1"正确地 第二次打印" 0.0.0.0" 程序的其余部分包含一个线程,该线程将此数据包发送到服务器并等待ack(因此我必须能够从线程函数访问command_packet的所有字段),但我仍然卡在保存服务器地址在数据包中,我做错了什么?感谢