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

Socket网络通信流程

目录

创建Socket

绑定和监听(服务器端)

建立连接

数据传输

关闭连接


Socket不是一种协议,是对TCP/UDP等协议进行封装后供程序调用的接口,代码中调用相应的接口,即可将数据发送给对方,这种编程方式叫做socket编程。客户端建立一个socket,服务端建立一个socket,二者建立连接后便可以进行通信。

创建Socket

客户端:创建一个用于通信的套接字(Socket对象)。这通常涉及到指定所使用的协议族(如IPv4的AF_INET)、套接字类型(如流式套接字SOCK_STREAM用于TCP,数据报套接字SOCK_DGRAM用于UDP)以及协议(通常指定为0,表示使用默认协议)。
服务器端:同样创建一个套接字,但通常还会创建一个ServerSocket对象,用于监听客户端的连接请求。

绑定和监听(服务器端)

绑定:服务器端将创建的套接字与本地的IP地址和端口号进行绑定,这样客户端才能知道如何连接到服务器。
监听:服务器端调用listen()方法开始监听客户端的连接请求。

建立连接

客户端:使用connect()方法指定服务器的IP地址和端口号,并尝试建立连接。
服务器端:当有客户端发起连接请求时,服务器端会解除阻塞状态,并调用accept(

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 昇思25天学习打卡营第6天|函数式自动微分
  • Docker安装遇到问题:curl: (7) Failed to connect to download.docker.com port 443: 拒绝连接
  • Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
  • Sql 导入到 Excel 工具
  • OpenFWI代码
  • 如何用qq邮箱注册outlook邮箱
  • 若依 / ruoyi-ui:执行yarn dev 报错 esnext.set.difference.v2.js in ./src/utils/index.js
  • 使用redis进行短信登录验证(验证码打印在控制台)
  • STM32的SPI接口详解
  • 【算法】代码随想录之数组(更新中)
  • Python学习笔记33:进阶篇(二十二)pygame的使用之image模块
  • 【笔记】在window上连接虚拟机中的redis
  • PTA - 编写函数计算圆面积
  • 垃圾回收器详解
  • mybatis-plus中的方法的作用
  • ----------
  • 【Leetcode】101. 对称二叉树
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • const let
  • Git 使用集
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • IP路由与转发
  • JavaScript 基本功--面试宝典
  • Javascript编码规范
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Spring声明式事务管理之一:五大属性分析
  • Webpack 4x 之路 ( 四 )
  • 多线程事务回滚
  • 分布式事物理论与实践
  • 复杂数据处理
  • 配置 PM2 实现代码自动发布
  • 使用docker-compose进行多节点部署
  • 事件委托的小应用
  • 通过几道题目学习二叉搜索树
  • ​一些不规范的GTID使用场景
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2020)Java后端开发----(面试题和笔试题)
  • (4)Elastix图像配准:3D图像
  • (C++20) consteval立即函数
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (二)构建dubbo分布式平台-平台功能导图
  • (分享)自己整理的一些简单awk实用语句
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)u-boot-nand.bin的下载
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)ORM
  • (转)scrum常见工具列表