网络编程入门笔记1——socket是个什么玩意儿
查看次数5776 发表时间2013-06-05 10:04:36
让我们从socket说起......linux下用文件描述符来对文件进行操作,文件描述符是连接用户空间和内核空间的枢纽:当打开或创建一个文件时,内核空间创建相应的结构,并生成一个整型的文件描述符返回给用户空间的进... |
让我们从socket说起......
linux下用文件描述符来对文件进行操作,文件描述符是连接用户空间和内核空间的枢纽:当打开或创建一个文件时,内核空间创建相应的结构,并生成一个整型的文件描述符返回给用户空间的进程。进程用这个文件描述符来对文件进行操作。以后的read,write等都要文件描述符来标识。
在linux下还有一类比较特殊的文件,即socket文件。它是一种网络接口的抽象,是应用层到传输层或其他协议层的访问接口,”其次,具体使用的套接口是与unix管道的某一端类似的东西,我们可以往这个口写数据,也可以从这个口读数据“
struct socket
{
socket_state state; //socket状态
unsigned long flags; //socket标志
const struct proto_ops *ops; //协议特定的socket操作
struct fasync_struct *fasync_list //异步唤醒列表
struct file *file; //文件指针
struct sock *sk; //内部网络协议结构
wait_queue_head_t wait; //多用户时的等待队列
short type; //socket类型
}
当调用sockfd=socket(AF_INET,SOCK_STREAM,0); 时,内核层会进行如下动作:1,创建一个socket结构;2,返回文件描述符
”注意这个时候还没有具体到 IP 地址或 端口,只是建立了一种socket类型的文件“
(转发请注明转自:学PHP)
相关推荐
- C Primer Plus(一) (2013-06-05 10:04:36)
- linux chmod命令 (2013-06-05 10:04:37)
- linux常见命令的列表 (2013-06-05 21:04:29)
- 内存分配(二)windows进程中的内存结构 (2013-06-24 16:04:33)
- STL中的特性萃取机iterator_traits (2013-06-24 16:04:33)
- 从程序员到项目经理(4):外行可以领导内行吗 (2013-06-04 23:04:30)
- Linux常用的网络命令 (2013-06-04 23:04:30)
- 全局/静态变量初始化为0放在bss段还是data段 (2013-06-04 23:04:30)
- Qt .pro文件写法学习笔记 (2013-06-04 23:04:30)
- Apache+Mysql+PHP+Mac OS X 10.7 Lion 服务器配置环境 . (2013-06-04 23:04:29)
发表评论