如何定义recvfrom()函数中提到的字段的结构?

时间:2013-11-19 10:57:53

标签: c sockets

以下程序从互联网接收/捕获数据包并写入文件(日志文件)。在我的其他程序中,我使用read()func而不是recvfrom(),但只是发送缓冲区不会正确处理数据包。因此我想再发送两个在recvfrom函数中的字段

int main()
{
int saddr_size,data_size;
struct sockaddr saddr;

unsigned char *buffer = (unsigned char *) malloc(1024);    
   while(1)
   { 

    saddr_size = sizeof saddr;
    //Receive a packet      
    data_size = recvfrom(sock_raw , buffer , 1024, 0 , &saddr ,(socklen_t*)&saddr_size);
    int cont= write(logfile,buffer,data_size);            

   }        
return 0;
}

在上面的程序中,我需要将结构定义为& saddr和(socklen_t *)& saddr_size)。这不是仅发送缓冲区,而是需要发送& saddr和(socklen_t *)& saddr_size)的值。我怎么能这样做?我的意思是说如何定义结构到& sddr和(socklen_t *)& saddr_size)??请有人指导我。

1 个答案:

答案 0 :(得分:1)

不,您不发送这些字段,recvfrom函数会自动从接收到的数据包中填写这些字段。