[英]Doubt in defining structure in c socket program
data_size = recvfrom(sock_raw , buffer , 1024, 0 , &saddr ,
(socklen_t*)&saddr_size);
Here is a recvfrom function, where I want to create a struct to 'saddr' and 'saddr_size' which is declared in the main()
as follows 这是一个recvfrom函数,在这里我想创建一个结构到'saddr'和'saddr_size',在
main()
声明如下
struct sockaddr saddr;
int saddr_size;
saddr_size = sizeof saddr;
and instead of buffer mentioned in the below write()
api I have to use the struct variable. 而不是下面的
write()
api中提到的缓冲区,我必须使用struct变量。
int cont= write(logfile,buffer,data_size);
My question is: Below I have used structure. 我的问题是:下面我使用了结构。 Is this the way to define struct for the following fields?
这是为以下字段定义结构的方法吗? Is it declared correctly?
声明正确吗? If not please somebody guide me to correct it.
如果没有,请有人指导我进行更正。
struct data{
unsigned char buffer[1024];
unsigned long int saddr;
// struct sockaddr saddr;
int saddr_size;
};
I assumed this as your structure. 我认为这是您的结构。
struct fields{
unsigned char msg[1024]; // buffer received.
char saddr[14]; // network socket address received.
int sock_size; // sizeof socket structure.
}data;
After the recvfrom
call, define/initialize your structure variables(ie, copy buffer,network address, size to the structure fields). 在
recvfrom
调用之后,定义/初始化您的结构变量(即,复制缓冲区,网络地址,结构域的大小)。
Now, log the structure data to the file 现在,将结构数据记录到文件中
fprintf(logfile,"%s %s %d",data.msg,data.saddr.address,data.saddr_size);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.