linux内核发包过程,Linux 内核发包

#include struct socket        *sock;

unsigned char buffer[10]=

{ 1,2,3,4,5,6,7,8,9,0,

};

static int ker_send_udp(char* ip_addr, unsigned char * data, size_t len )

{

int ret;

u32 remote_ip = ntohl(in_aton(ip_addr));

struct sockaddr_in sin = {

.sin_family = AF_INET,

.sin_port = htons(65530),

.sin_addr = {.s_addr = remote_ip}

};

struct kvec iov = {.iov_base = (void *)data, .iov_len = len};

struct msghdr udpmsg;

udpmsg.msg_name = (void *)&sin;

udpmsg.msg_namelen = sizeof(sin);

udpmsg.msg_control = NULL;

udpmsg.msg_controllen = 0;

udpmsg.msg_flags=0;

ret = kernel_sendmsg(sock, &udpmsg, &iov, 1, len);

printk("rets = %d\n",ret);

return 0;

}

static int socket_init (void)

{

int ret;

ret = sock_create_kern (PF_INET, SOCK_DGRAM,IPPROTO_UDP, &sock);

printk("retc = %d\n",ret);

ker_send_udp("192.168.1.253", buffer, 10);

return 0;

}

static void socket_exit (void)

{

sock_release (sock);

}

module_init (socket_init);

module_exit (socket_exit);

MODULE_LICENSE ("GPL");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值