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

让我们从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类型的文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值