Unity3D数字孪生开发笔记(一)

  • 一、网络连接的端点:Socket
  • 二、端口
  • 三、Socket通信流程
  • 四、TCP和UDP

一、网络连接的端点:Socket

1、网络上的两个程序通过一个双向的通信连接实现数据交换,这个连接的一段称为一个Socket。
2、一个Socket包含了进行网络通信必须的五种信息:连接使用的协议、本地主机的IP地址、本地的协议端口、远程主机的IP地址和远程协议端口。

理解: 把Socket理解为一台手机,本地主机的IP地址和端口相当于自己的手机号码,远程主机IP地址和端口相当于对方的手机号码,至少需要两台手机才能打电话,同样,至少需要两个Socket才能进行网络通信。

二、端口

1、“端口”是设备与外界通信交流的出口,每台计算机可以分配0到65535共2^16个端口。端口的出现是由于计算机“多任务”概念的引入。

理解: 原来大家都住平房,寄信的时候只关注 x x 路 x x 号,随着城市的发展,现在都住上了高楼,为了更准确的发送邮件,地址就成了x x 路 x x 号 x x 层 x x 室。

2、每一条Socket连接代表着:本地Socket -->本地端口–>网络介质–>远程端口–>远程Socket的链路。
3、Socket通信分为“连接方”和“监听方”:连接方使用不同的端口连接,监听方只使用一个端口监听。

三、Socket通信流程

1>开启连接之前,需要创建一个Socket对象(使用API Socket),然后绑定本地使用的端口(使用API Bind)。 对服务端而言,绑定的步骤相当于给手机插上SIM卡,确定了“手机号”,对于客户端而言,连接时(使用API Connect)会由系统分配端口,可以省去绑定步骤。
理解: 服务端的绑定相当于激活手机号,激活后别人才能打给你;客户端的绑定可以理解为存电话簿,但不在你电话簿的人也可以打给你,所以可以省去这个步骤。

2>服务端开启监听(使用API Listen),等待客户端接入。相当于电话开机,等待别人的呼叫。

3>客户端连接服务器(使用API Connect)。相当于手机拨号。

4>服务器接受连接(使用API Accept)。相当于接听电话并说出“喂”。

通过以上4步,成功的建立连接,可以收发数据。

5>客户端和服务端通过Send和Receive等API 收发数据,操作系统会自动完成数据的确认、重传等步骤,确保传输的数据准确无误。

6>某一方关闭连接(使用API Close),操作系统会持续“四次挥手”的步骤,关闭双方链接。相当于挂断电话。

  • 下面这个图也更贴切实际

四、TCP和UDP

1、TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议;UDP协议是无连接的、不可靠的、但传输效率较高的协议。
2、TCP注重传输的可靠性,确保数据不会丢失,但速度慢;UDP注重传输速度,但不保证所有发送的数据对方都能够收到。
3、使用TCP的话,必然存在3次握手阶段

理解: 有些快递收费低,对快递员要求低,丢件频繁;有些快递收费高,要求快递员在每个节点都要做检查和标记,丢件概率低。

Unity3D数字孪生开发笔记——网络篇相关推荐

  1. Unity数字孪生开发笔记——轿厢基本运动实现

    Unity数字孪生开发笔记--轿厢基本运动实现 一.轿厢实例说明 二.需求分析 1.轿厢移动 1>楼层信息 2>轿厢运动 2.对重移动 3.开关门动画 1>挂载到物体上的动画类 2& ...

  2. iOS开发笔记 - 网络篇

    计算机网络基础   计算机网络是多台独立自主的计算机互联而成的系统的总称,最初建立计算机网络的目的是实现信息传递和资源共享.   如果说计算机是第二次世界大战的产物,那么计算机网络则是美苏冷战的产物. ...

  3. Unity3D数字孪生笔记——Unity常用API篇

    Unity3D数字孪生笔记(二)--Unity篇 一.常用API 1.Component 2.Transform 3.GameObject 4.Object 5.Time 二.预制件(Prefab) ...

  4. 数字孪生开发 数字孪生用什么软件实现

    无论你是否知道,数字孪生真的很火.将智慧城市作为技术基础,其发展日新月异,2016年时,全国已有300多个城市在数字孪生建设智慧城市:2019年,这一数字为500,再过一年,就有700座数字孪生进行试 ...

  5. AIR移动(Starling)开发笔记基础篇

    AIR移动(Starling)开发笔记基础篇 ---------kiddyPs:文档写的不是很好,欢迎指正和扩展 Starling相关 自定义移动动画 A.自定义函数 var tw:Tween = n ...

  6. 微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)

    文章目录 一.前言 二.前端代码wxml 三.前端代码js 四.云函数 五.程序流程 一.前言 微信小程序开发笔记--导读 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机号码. 但是,因 ...

  7. 微信小程序开发笔记 进阶篇⑤——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之前)

    文章目录 一.前言 二.前端代码wxml 三.前端代码js 四.后端java 五.程序流程 六.参考 一.前言 微信小程序开发笔记--导读 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机 ...

  8. Google Map 开发笔记——基础篇(Javascript )

    Google Map 开发笔记--基础篇 说明: 一.使用入门: 1.在您需要显示地图的 html 页面嵌入这段 script 2.地图 DOM 元素 3.初始化地图 二.地图画点.线.面 1.标记( ...

  9. 数字孪生开发公司 数字孪生开发团队 智慧工厂开发

    数字孪生开发智慧城市,数字孪生开发智慧城管,数字孪生开发智慧电力,数字孪生开发智慧高速,数字孪生开发智慧气象,数字孪生开发智慧水务,数字孪生开发公共安全,数字孪生开发智慧警务,数字孪生开发智慧安保,数 ...

最新文章

  1. centos6.x 搭建K8S环境准备
  2. android 消除标题,Android Activity 去掉标题栏及全屏显示
  3. WebSocket——[Error during WebSocket handshake: Unexpected response code: 200]解决方案
  4. 移动端分步注册_移动应用程序的可用性测试:分步指南
  5. sql事务、视图和索引
  6. java高级语言特性,Java高级语言特性之注解
  7. oracle job定时报错,Oracle Job定时任务的使用详解
  8. Eclipse直接打开类文件/文件夹所在的本地目录
  9. android状态栏背景色和图标颜色更改总结
  10. Java IO实战操作(三)
  11. python复制文件shutil_Python常用模块——文件复制模块shutil
  12. tween.js的使用
  13. VPP教程 基本命令 记录
  14. 真好玩python教孩子学编程_Python真好玩:教孩子学编程(全彩印刷))简介,目录书摘...
  15. Linux之shell脚本编程、多命令、脚本、bc计算器、反引号、if语句、for语句
  16. 【Unity Shader】 Alpha测试
  17. 腾讯云主机部署hexo博客
  18. 技术杂谈 | 分享Iteye的开涛对IoC的精彩讲解
  19. 榆熙科技电商:拼多多买家交易评价内容都包含哪些?
  20. linux ip命令

热门文章

  1. 使用rails Devise
  2. 深度学习笔记~感受野(receptive field)的计算
  3. springboot项目结构_从零搭建Spring Boot脚手架(1):开篇以及技术选型
  4. python终端打印表格
  5. c# 时间格式化为英文_C# DateTime日期格式化
  6. Pumpkin Garden 靶场实战
  7. day01 pathon基础
  8. ACE+TAO 通信中间件
  9. 零基础学习Java会不会很吃力?
  10. java web 题_javaWeb习题与答案