v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso...
by gaocheng - Linux文档专区 - 2009-10-29 13:46:21 阅读(1085) 回复(0)
详见iteye: 1、创建socket:http://diecui1202.iteye.com/blog/1096274 2、创建socket(续):http://diecui1202.iteye.com/blog/1096562
是不是UDP根本就不判断,还是有什么比较隐蔽的判断?从代码中没看到使用struct sock::sk_rcvbuf的地方,另外代码中有如下注释: case SO_RCVBUF: /* Don't error on this BSD doesn't and if you think about it this is right. Otherwise apps have to play 'guess the biggest size' games. RCVBUF/SNDBUF are treated in BSD as hints */ 语法不通,但这里提到在BSD是只是一个hint,我看了一下4.4 BSD-Lite2...
linux2.6.30内核的socket结构 978计划工作组 2009-11-5 1函数源码 struct socket { socket_state state; short type; unsigned long flags; /* * Please keep fasync_list & wait fields in the same cache line */ struct fasync_struct *fasync_list; wait_queue_head_t wait; struct file *file; ...
关于socket的调用过程简单说下,自己在这里犯过错误 虽然有sys_socket但是unistd.h里面并没有__NR_socket因为基本上所有socket的调用都是通过socketcall一个接口完成的。以后就不写socketcall了,直接进入主题 asmlinkage long sys_socket(int family, int type, int protocol) { int retval; struct socket *sock; int flags; /* Check the SOCK_* constants for consistency. */ BUILD_BUG_ON(SOCK_...
指引朋友们从linux/unix的应用程序渗透到内核看看具体的实现过程 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/64681/showart_1432584.html
在linux2.6内核环境下,建立AF_UNIX的socket通过send、recv实现用户层和内核的通信,类似ioctl、netlink等。 问题一,内核中实现和用户层通信的代码是那些?内核是如何区分出AF_UNIX类的socket的而不是AF_INET,不同socket它们的send、recv操作是不是同样的内核代码来实现? 问题二,想要AF_UNIX的socket实现自定义一些命令来和让用户和内核通信,类似于ioctl、netlink,可以实现吗?有没有思路呢?
在linux2.6内核环境下,建立AF_UNIX的socket通过send、recv实现用户层和内核的通信,类似ioctl、netlink等。 问题一,内核中实现和用户层通信的代码是那些?内核是如何区分出AF_UNIX类的socket的而不是AF_INET,不同socket它们的send、recv操作是不是同样的内核代码来实现? 问题二,想要AF_UNIX的socket实现自定义一些命令来和让用户和内核通信,类似于ioctl、netlink,可以实现吗?有没有思路呢? 请大师们不吝赐教。
详见我的blog,http://blog.chinaunix.net/space.php?uid=22359610 欢迎有兴趣的一起讨论。
本帖最后由 zhuyoong 于 2011-06-24 17:35 编辑 一、socket()库函数到系统调用,再到内核 1、linux运行的C库是glibc; 2、socket()调用如下: 1) socket()->__socket():glibc-2.3.6/sysdept/generic/socket.c (weak_alias(name1, name2)) 2) __socket():glibc-2.3.6/sysdept/unix/sysv/linux/i386/socket.S 3) ENTER_KERNEL:[code] movl $SYS_ify(socketcall), %eax /* System call number in %eax. */ /* Use ## so...
本帖最后由 zhuyoong 于 2011-06-24 17:36 编辑 一、注册时机 1、在内核初始化时完成; 2、内核初始化过程(init/main.c):kernel_init()->do_basic_setup()->do_initcalls()->do_one_initcall(); 3、socket文件系统注册过程(net/socket.c):core_initcall(sock_init); 1) core_initcall宏定义如下:[code] #define core_initcall(fn) __define_initcall("1",fn,1) #define __define_initcall(level,fn,id) \ static...