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

Unity:网络编程

Socket

服务端至少要两个socket:一个负责接收客户端连接请求,但不负责与客户端通信;为每个连接成功的客户端,在服务端创建一个对应的socket负责与客户端通信。

客户端的socket一个就行:要指定连接的服务端的IP和端口。

通讯过程:

  • 申请一个socket
  • 绑定IP和端口
  • 监听
  • 服务端接收到连接请求,产生一个新的socket,与客户端建立连接并通讯。
  • 原监听socket继续监听

构造函数:

  • AddressFamily代表寻址方案,InterNetwork表示IPV4连接。
  • SocketType代表要打开的Socket类型。
  • ProtocolType代表请求协议。

通信流程:

-------------------------------------------

   客户端         服务端

 -------------              --------------

Socket()       Socket()

          Bind()

           Listen()

Connect() <==> Accept()

Send()        ==>    Receive()

Receive()      <==    Send()

Close()      Close()      

------------------------------------------------

TCP与UDP的区别:

TCP:传输控制协议是一种面向连接、可靠的、基于字节流的、运输层通信协议。

  • 面向连接的协议数据传输必须要先建立连接;
  • 一旦连接建立,双方可以按统一大小的格式传输数据;
  • 可靠的:确保接收方完全正确的获取发送方所发送的全部数据。

UDP:用户数据包协议,面向事务的、无连接的、不可靠的传输协议。

  • 数据报文中有完整的地址信息,所以不建立连接就发送了。
  • 传输数据有大小限制,64KB以内。
  • 不可靠:发送的数据并不一定以相同的次序到达接收方。

长链接与短连接:

长连接:一直建立连接,所有的线程都结束,程序才会退出。

短连接:需要的时候才建立连接,任务一结束就中断连接。

阻塞与非阻塞:

阻塞:发一个消息如果服务器不返回,客户端会一直等。调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞:调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。

同步和异步:

同步和异步关注的是消息通信机制。

所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。

而异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。

 Unity协同程序:

他并不是真正意义上的并行,实际上是通过迭代器来实现的,通过关键字IEnumerator来定义一个迭代方法,yield返回。

 
http://www.wxhsa.cn/company.asp?id=3941

相关文章:

  • 【比赛记录】2025CSP-S模拟赛45
  • PWN手的成长之路-01
  • SpringCloud全解:核心组件与实战案例 - 教程
  • 学起plus刷课
  • Windows 安装人大金仓数据库 KingbaseES_V008R006
  • Hadoop(十) - 教程
  • 如何注入像 MyBatis 一样注入接口
  • 深入解析:环境搭建与你的第一个 Next.js 应用
  • 在 Ubuntu 中处理中文路径
  • 10 个优质周公解梦网站推荐及解析参考
  • 202212_风二西_冰蝎流量分析
  • 记账:出入报表
  • [AGC028D] Chords 题解
  • 记账:报表
  • 记账:灵活转账
  • 记账:批量更新
  • 记账:水电气话费
  • 《原子习惯》-读书笔记1
  • 记账:记一笔
  • 记账:快速上手
  • 高二闲话 #1
  • dijkstra 学习笔记。
  • linux指令
  • char与varchar类型
  • 详细介绍:【MySQL】基本查询
  • 202109_鹤城杯_SQL注入
  • Madness - TryHackMe
  • hahasim 香港手机卡 没信号 解决
  • 机器人逆运动学进阶:李代数、矩阵指数与旋转流形计算
  • 第一周博文