#include #include #include #include #include #define SERVERPORT 5555 static struct socket *clientsocket=NULL; static int __init client_init( void ) { int len; char buf[64]; struct msghdr msg; struct iovec iov; mm_segment_t oldfs; struct sockaddr_in to; if( sock_create( PF_INET,SOCK_DGRAM,IPPROTO_UDP,&clientsocket)<0 ) { printk( KERN_ERR "server: Error creating clientsocket.\n" ); return -EIO; } to.sin_family = AF_INET; to.sin_addr.s_addr = in_aton( "127.0.0.1" ); /* destination address */ to.sin_port = htons( (unsigned short)SERVERPORT ); msg.msg_name = &to; msg.msg_namelen = sizeof(to); memcpy( buf, "hallo", 6 ); iov.iov_base = buf; iov.iov_len = 6; msg.msg_control = NULL; msg.msg_controllen = 0; msg.msg_iov = &iov; msg.msg_iovlen = 1; oldfs = get_fs(); set_fs( KERNEL_DS ); len = sock_sendmsg( clientsocket, &msg, 6 ); set_fs( oldfs ); if( len < 0 ) printk( KERN_ERR "sock_sendmsg returned: %d\n", len); return 0; } static void __exit client_exit( void ) { if( clientsocket ) sock_release( clientsocket ); } module_init( client_init ); module_exit( client_exit ); MODULE_LICENSE("GPL");