新浪微博 登陆  注册   设为首页 加入收藏

学PHP >> UNIX/LINUX >> 网络编程入门笔记1——socket是个什么玩意儿

网络编程入门笔记1——socket是个什么玩意儿

查看次数2858 发表时间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)    


  相关推荐




  发表评论
昵称:
(不超过20个字符或10个汉字)
内容: