什么是网络?
客户端和服务器如何交换数据
该博客上撰写的文章是出于教学目的而创建的。 另外,文章中的信息可能不正确,请谨慎。
网络是远程计算机根据既定规则交换数据的结构。 在线游戏、网络浏览器和聊天程序基本上也是从发送数据和接收响应的过程开始的。
通过地址和端口查找程序
IP 地址是用于在网络上查找计算机的地址。 端口号标识哪个程序将与计算机通信。
192.168.0.10:7777
└─ IP 地址 └─ 端口
服务器在特定端口上等待请求,客户端尝试连接到服务器的地址和端口。 连接后,双方按照约定的格式交换消息。
协议是数据交换的规则
仅通过查看发送的字节,您无法判断这是登录请求还是字符位置。 因此,消息类型、长度和值的顺序都是预先确定的。
[消息类型][数据长度][实际数据]
[MOVE ][12 ][x, y, z]
这个承诺称为协议。 如果服务器和客户端不使用相同的规则,则无法正确解释它们。
TCP 和 UDP
TCP 确保数据按顺序到达并在丢失时重新发送。 它非常适合注重准确性的任务,例如文件传输、登录和聊天。
UDP具有简单的连接和重传管理,很容易减少延迟。 相反,数据可能会消失或改变顺序,因此程序必须确定需要进行哪些可靠性处理。
TCP:优先考虑准确传送。
UDP:适合优先考虑快速交付和最新状态。
网络游戏需要隐藏延迟
网络数据不会立即到达。 使用预测和插值来使客户端屏幕平滑,重要的决策往往是在服务器做出最终决策的结构中做出的。
网络编程的开始并不复杂的同步。 最好从一个小的 Echo 程序开始,其中客户端发送一个字符串,服务器返回相同的字符串,检查连接、消息和错误处理。