在c socket程序中定义结构

Beg*_*ner 6 c sockets

data_size = recvfrom(sock_raw , buffer , 1024, 0 , &saddr ,
                                           (socklen_t*)&saddr_size);
Run Code Online (Sandbox Code Playgroud)

这是一个recvfrom函数,我想创建一个'saddr'和'saddr_size'的结构,它在main()中声明如下

struct sockaddr saddr;
int saddr_size;
saddr_size = sizeof saddr;
Run Code Online (Sandbox Code Playgroud)

而不是下面提到的缓冲区write()api我必须使用struct变量.

int cont= write(logfile,buffer,data_size);
Run Code Online (Sandbox Code Playgroud)

我的问题是:下面我使用了结构.这是为以下字段定义结构的方法吗?声明正确吗?如果不是,请有人指导我纠正它.

struct data{ 
  unsigned char buffer[1024];
  unsigned long int saddr; 
  //   struct sockaddr saddr;
  int saddr_size;
}; 
Run Code Online (Sandbox Code Playgroud)

aba*_*eld 1

struct data { 
  unsigned char buffer[1024];
  struct sockaddr saddr;
  socklen_t saddr_size;
};
Run Code Online (Sandbox Code Playgroud)