UNIX网络通信底层原理草稿笔记

Socket作为网络通信接口,允许应用程序通过创建socket对象发送和接收数据。数据传输过程中,内核扮演关键角色,它封装协议并管理缓冲区。在多客户端连接服务器场景下,父进程监听请求,子进程并发处理,每个子进程可能需要独立的socket以避免资源冲突。
摘要由CSDN通过智能技术生成

    socket是一个网络通信接口,用于接受发送数据,应用程序通过创建socket对象,应用程序通过socket将要发送的数据传递内核缓冲区,然后内核使用协议对此进行包装,再由内核调用网络接口发送到目标主机,接收请求和数据时,实际上也是由内核监听相应的socket,当有数据读入时,内核会将其送到缓冲区,然后由应用程序来读,因此,应用程序是工作在操作系统之上。

    对于socket的理解,可以将他类比作和stm32通信的虚拟串口,pc机可以通过虚拟串口和stm32的串口建立连接并通信,而这一过程实际是由驱动程序完成的,因此对于socket而言,绑定好ip和端口,还有协议类型的socket和底层协议栈就好比虚拟串口,而内核就好比驱动程序,内核通过socket和底层协议栈发送和接受数据

  需要注意的是当多个客户连接到一个服务器,服务器必须并发的处理请求,即要由父进程监听请求,然后由子进程并发处理请求,子进程最好拥有自己独立的socket,若全部都从父进程那里复制过来,可能会引起资源冲突

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值