分类: LINUX
2008-11-20 14:51:38
chinaunix网友2008-12-30 15:28:37
感谢博主的热心答复,原来sk_alloc()函数中就已经分配了struct unix_sock的空间了,只是sk_alloc()把返回值强制转换成了struct sock结构。之所以可以强制转换,是因为struct unix_sock的第一个元素就是struct sock sk; 谢谢!
chinaunix网友2008-12-29 16:50:29
请问下楼主,有个地方我不是很明白,在函数unix_create1()中, [code] sk = sk_alloc(net, PF_UNIX, GFP_KERNEL, &unix_proto); 。。。。。。。。。。。。 u = unix_sk(sk); u->dentry = NULL; u->mnt = NULL; 。。。。。。。。。 [/code] 其中,u = unix_sk(sk);这里我不是很理解,unix_sk宏的定义是: [code] #define unix_sk(__sk) ((struct unix_sock *)__sk) [/code] 而struct unix_sock的定义是: [code] struct unix_sock { /* WARNING: sk has to be the first member */ struct sock sk; struct unix_address *addr; struct
chinaunix网友2008-12-19 09:00:18
server_address.sin_port = 9734 关于这句我看到有些书籍中 会特地 htons(9734),是不是只在自己机器上通信的话就不需要考虑这个问题