netlink,中用户使用sendto有什么意义

kzl0629 2011-11-06 11:04:40
在看使用netlink获取路由表时,在recvmsg()前,调用了sendto(),给内核发送信息不会设置什么,看不到什么效果,而且还有一个struct rtgenmsg,这个结构体,请问有什么用啊?

相关的代码如下:
struct
{
struct nlmsghdr nlh;
struct rtgenmsg g;
}req;

sendsize=sendto(sockfd,(void*)&req,sizeof(req),0, (struct sockaddr*)&nladdr,sizeof(nladdr))
这段代码有什么作用?
struct rtgenmsg,这个结构体,请问有什么用?

...全文
149 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiahehao 2011-11-07
  • 打赏
  • 举报
回复
  int sendto ( int s , const void * msg, int len, unsigned int flags, const
  struct sockaddr * to , int tolen ) ;
  函数说明
  sendto() 用来将数据由指定的socket传给对方主机。参数s为已建好连线的socket,如果利用UDP协议则不需经过连线操作。参数msg指向欲连线的数据内容,参数flags 一般设0,详细描述请参考send()。参数to用来指定欲传送的网络地址,结构sockaddr请参考bind()。参数tolen为sockaddr的结果长度。
  返回值
  成功则返回实际传送出去的字符数,失败返回-1,错误原因存于errno 中。
_______________________________________

你看前面req是如何初始化的,结合前后流程就能猜出这个sendto的含义了。rtgenmsg应该是存储要发送的消息内容。

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧