|
发表于 2006-3-27 23:00:22
|
显示全部楼层
用sock_create_kern(PF_INET, SOCK_DGRAM, IPPROTO_UDP, &sock)
创建socket结构.
用kernel_sendmsg(sock, &msg, &vec, x, xxx)发送数据包,
内核态的bsd socket和用户态的socket基本相同, 不过内核态用socket结构, 用户态用文件描述符, 内核的bind/connect/listen函数都用socket->ops->bind/connect/listen... 等, 发包和收包用kernel_sendmsg和kernel_recvmsg, 不过注意, kernel用kvec, 用户态用iovec, 不过他们可以相互转换. 用sourcenavigator看packetgen.c(一个内核发包模块)就明白了.
另: 人家回答你的问题是自愿的, 不要报怨. |
|