当前位置: 首页 > news >正文

【网络编程】网络编程基础和Socket套接字

目录

一. 网络编程的概念

二. 网络编程基础知识

1)网卡

2)接收端和发送端

3)客户端和服务器

4)请求和响应

 5)客户端和服务器的交互模式

三. Socket 套接字模型


一. 网络编程的概念

网络编程 是通过编程实现不同进程之间数据交换和通信的技术。

  • 主机1向主机2发送网络数据,主机1发送网络资源(客户端)主机2获取网络资源(服务器)
  • 如果是同一个主机,只要是不同的进程,基于网络来传输数据,那么也属于网络编程

网络编程的本质就是学习传输层提供给应用层的API,通过使用这些API,将数据交给传输层,经过层层封装将数据通过网卡发送出去

二. 网络编程基础知识

1)网卡

网卡属于计算机的硬件组件,将二进制数据转换成适合传输的光电信号,并处理网络协议的底层细节

2)接收端和发送端

接收端和发送端

发送数据的一方,称为发送端

接收数据的一方,称为接收端

3)客户端和服务器

 客户端和服务器

主动发起通信的一方,称为客户端

被动接受通信的一方,称为服务器

同一个程序在不同的场景中,可能是客户端也可能是服务器 

4)请求和响应

客户端给服务器发送的数据,称为请求

服务端给客户端返回的响应,称为响应 

 5)客户端和服务器的交互模式

  • 一问一答( 一个请求对应一个响应)

客户端给服务器发个请求,服务器给客户端返回个响应(网站开发)

  • 一问多答 (一个请求对应多个响应)

客户端发一个请求,服务器返回多个响应(下载文件)

  • 多问一答 (多个请求对应一个响应)

 客户端发多个请求,服务器响应一个(上层文件)

  • 多问多答(多个请求对应多个响应)

 客户端发送多个请求,服务器返回多个响应(远程控制)


三. Socket 套接字模型

网络编程主要使用系统API,这些API主要是由传输层提供,传输层主要有两种协议:TCP和UDP

由于协议的不同,导致提供的API也不同 


 Socket套接字针对传输层协议分为了三类:

  1. 流套接字(使用传输层TCP协议)
  2. 数据报套接字(使用传输层UDP协议)
  3. 原始套接字

 传输层主要协议:TCP和UDP协议(重点!!!)

UDP:无连接,不可靠传输,面向数据报,全双工

TCP:有链接,可靠传输,面向字节流,全双工

1)有链接/无连接

有链接

  • 这里的连接并不是物理意义上的理解,而是抽象的连接
  • 连接的特点是必须双方都认同,连接后才能传输数据(打电话)
  • 连接的本质就是使用一些数据结构去记录对方的信息

无连接

  •  不管你认不认同,数据都可以发送过去(发短信)

2) 可靠传输/不可靠传输

  • 这里的可靠传输不能保证数据百分之百到达接收端
  • 可靠传输:发送的数据是否送达,发送方可以感知到 

3)面向字节流/面向数据报

面向字节流(TCP):网络中传输的基本单位是字节

面向数据报(UDP):网络中传输的基本单位是数据报(由一系列字节组成) 

 4)全双工/半双工

全双工:同一时刻,可以双向通信

半双工:同一时刻,只能单向通信


UDP数据报套接字模型


TCP流套接字模型 


点赞的宝子今晚自动触发「躺赢锦鲤」buff!下一章详细介绍UDP数据报套接字编程 

相关文章:

  • AF3 generate_chain_data_cache脚本解读
  • TDengine 与其他时序数据库对比:InfluxDB/TimescaleDB 选型指南(一)
  • AI智能体小结
  • 主流Embedding模型优劣势解析与技术选型指南(2025年4月)
  • npm和npx的作用和区别
  • 数据服务化 VS 数据中台:战略演进中的价值重构
  • 1×1卷积与GoogleNet
  • 天润融通AI Agent重塑零售连锁行业客户服务竞争力
  • 【行业树选择器组件:基于Vue3与Element Plus的高性能树形选择组件优化与重构】
  • 微服务1--服务架构
  • 计算机视觉算法实现——疲劳驾驶检测
  • Windows 下实现 PHP 多版本动态切换管理(适配 phpStudy)+ 一键切换工具源码分享
  • 基于JSP+MySQL实现用户注册登录及短信发送功能
  • Swift —— delegate 设计模式
  • 宝塔面板面试内容整理-Web服务器优化
  • Google最新《Prompt Engineering》白皮书全解析
  • 多线程、JUC——面试问题自我总结
  • 住宅代理是什么?2025详细指南
  • 基于前端技术的QR码API开发实战:从原理到部署
  • Handsontable 表格组件的使用
  • 泽连斯基:美乌矿产协议将提交乌拉达批准
  • 426.8万人次!长三角铁路创单日客发量历史新高
  • 《水饺皇后》领跑五一档票房,《哪吒2》上座率仍居第一
  • “译通天下·言立寰宇”:华东师大翻译家的精神传承
  • 关于“十五五”,在上海召开的这场座谈会释放最新信号
  • 抗美援朝老战士宁昭逝世,享年93岁