【socket】socket介绍-socket深入内核解析

本文深入解析socket编程,探讨从创建socket到accept接收连接的内核处理过程。涵盖socket创建、bind、accept的关键步骤,以及操作系统如何通过Protocol Control Block (PCB)区分不同客户端连接。
摘要由CSDN通过智能技术生成

之前有篇文章讲解了常见的服务端socket开发模式,主要分为以下几种模式
1、阻塞式-每次只接受一个请求,处理结束才接受下一个请求;
2、多进程-每次请求来了启动一个进程或者线程,来处理该请求;
3、IO复用模式-主要包括select模式、epoll模式
通过简单的代码示例,讲述了每种模式如何进行开发。但是具体的socket在创建以后,监听端口,接受连接以后,对于操作系统究竟发生了什么,并没有涉及。这篇文章就对细节上进行介绍。

本篇文章主要是来自部分源码阅读,部分文章的翻译,还有其他一些博客的借鉴。如果有明确类似之处而又没有给出引用请留言。

通过上篇文章,可以看到无论什么模式下socket基本上都有如下几个步骤:
1:创建socket,初始化server数据结构;
2:绑定端口号,开始监听端口号;
3:开始循环进入accept接受请求;
4:处理请求,关闭客户端连接;

socket开发第一步就是需要创建一个socket,给定协议族、协议类型和协议,来创建一个socket,并返回socket的描述符。具体的协议族和协议类型的组合在《Unix网络编程》中已经有详细的描述,包括AF_XXX与PF_XXX之间的区别和历史渊源。在这里我们只针对TCP协议就行介绍。具体的方法原型如下所示:

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值