mukioplayerwp wordpress深圳公关公司推荐乐云seo

bicheng/2026/1/23 4:53:36/文章来源:
mukioplayerwp wordpress,深圳公关公司推荐乐云seo,福州网站建设哪家专业,公司的国外网站怎么建TCP/IP TCP/IP协议是一 系列规则(协议)的统称#xff0c;他们定义了消息在网络间进行传输的规则 是供已连接互联网的设备进行通信的通信规则 OSI模型只是一个基本概念,而TCP/IP协议是基于这个概念的具体实现 TCP和UDP协议 TCP:传输控制协议#xff0c;面向连接#xff0c…TCP/IP TCP/IP协议是一 系列规则(协议)的统称他们定义了消息在网络间进行传输的规则 是供已连接互联网的设备进行通信的通信规则 OSI模型只是一个基本概念,而TCP/IP协议是基于这个概念的具体实现 TCP和UDP协议 TCP:传输控制协议面向连接更安全效率较低一对一 UDP:用户数据报协议无连接不保证可靠性效率较高随意组合 TCP 是面向连接的协议也就是说在收发数据前必须和对方建立可靠的连接 并且在消息传送过程中是有顺序的并且是不会丢包(丢弃消息)的 如果某一条消息在传送过程中失败了,会重新发送消息直到成功 三次握手 四次挥手 三次握手建立连接 第一次握手(C-S) TCP连接请求 第二次握手(S-C) TCP授予连接 第三次握手(C-S) TCP确认连接 四次挥手断开连接 第一次挥手(C-S) 客户端告诉服务器数据已经发完如果服务器还有消息就请快发完 第二次挥手(S-C) 服务器告诉客户端继续等待服务器的消息 第三次挥手(S-C) 服务器告诉客户端消息发送完成可以正式断开连接 第四次挥手(C- -S) 客户端告诉服务器等一会如果没有收到服务器回复就断开 了 提供可靠的服务通过TCP连接传送的数据做到无差错、不丢失、不重复、且按顺序到达 UDP 是一种无需建立连接就可以发送封装的IP数据包的方法提供了面向事务的简单不可靠信息传送服务 具有资源消耗小处理速度快的特点 UDP协议不像TCP协议需要建立连接有三次握手和四次挥手当使用UDP协议发送信息时会直接把信息数据扔到网络上所以也就造成了UDP的不可靠性。信息在这个传递过程中是有可能丢失的虽然UDP是一个不靠谱的协议但是由于它不需要建立连接。也不会像TCP协议那样携带更多的信息所以它具有更好的传输效率   网络游戏通信方案 Socket\HTTP\FTP Socket:网络嵌套字 HTTP超文本传输协议主要完成短链接网络游戏需求 FTP主要用来完成资源的下载和上传 byte [] ipAddress new byte[]{118,102,111,11}; IPAddress ip1 new IPAddress(ipAddress); //用byte进行初始化//使用字符串进行初始化 IPAdress ip IPAddress.Parse(118.102.111.11);//ipi27.0.0.1代表本机地址//命名空间System.NetIPEndPoint ipPoint new IPEndPoint(0x79666F0B,8080); IPEndPoint ipPoint2 new IPEndPoint(IPAddress.Parse(118.102.111.11),8080); 域名解析 也叫域名指向服务器设置域名配置 域名系统是互联网上的一种服务管理名字与IP的对应关系 //IPHostEntry类 //域名解析后的返回值可以获取该对象的IP地址主机名等信息//DNS类 print(Dns.GetHostName()); //获取主机名字//获取指定域名的ip地址 //可能会阻塞主线程 IPHostEntry entry Dns.GetHostEntry(www.baidu.com);for(int i0;ientry.AddressList.Length;i){print(entry.AddressList[i]); } Socket 套接字 c#用于提供网络通信的一个类 类名Socket          命名空间System.Net.Socket Socket套接字时支持TCP/IP网络通信的基本操作单位 一个套接字包括本机地址IP和端口/对方主机的IP地址和端口/双方通信的协议信息 一个Socket对象表示一个本地或者远程嵌套字信息可被视为一个数据通道链接服务器和客户端可以接受数据的发送和接收 适合长连接的网络游戏 AddressFamily 网络寻址 枚举类型决定寻址方案         InterNetwork IPv4寻址         InterNetwork6 IPv6寻址 SocketType 嵌套字枚举类型 决定使用的套接字类型         Dgram 支持数据报最大长度固定无连接不可靠的消息主要用于UDP通信         Stream 支持可靠、双向、基于连接的字节流主要用于TCP通信 ProtocolType 协议类型枚举决定套接字使用的通信协议 TCP UDP 流套接字 主要实现TCP通信 数据报套接字 主要实现UDP通信 //TCP流套接字Socket socketTcp new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//UDPSocket socketUdp new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 实现服务端基本逻辑 //创建套接字Socket socketTcp new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//用bind方法将套接字与本地地址绑定//端口号要大于1024且不能被占用IPEndPoint ipPoint new IPEndPoint(IPAddress.Parse(127.0.0.1), 8080);try{socketTcp.Bind(ipPoint);}catch (Exception e){return;}//用LISTEN监听socketTcp.Listen(1024);//accept等待客户端连入//建立连接返回套接字Socket socketClient socketTcp.Accept();//收发数据socketClient.Send(Encoding.UTF8.GetBytes(HFUT));byte[] resultnew byte[1024];int receiveNumsocketClient.Receive(result);//返回值为接收到的数量socketClient.Shutdown(SocketShutdown.Both);socketClient.Close(); 实现客户端基本逻辑 //创建套接字Socket socket new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//与服务端相连IPEndPoint ipPoint new IPEndPoint(IPAddress.Parse(127.0.0.0), 8080);//上述应填写服务端的IP地址try{socket.Connect(ipPoint);}catch(SocketException e) {if(e.ErrorCode 10061){}else{}}//收发数据byte[] data new byte[1024];int num socket.Receive(data);//发送数据socket.Send(Encoding.UTF8.GetBytes(HFUTER));socket.Shutdown(SocketShutdown.Both);socket.Close(); 区分消息类型 发送自定义类的二进制信息需要继承BaseData类 区分不同消息给发送的消息添加标识比如添加消息ID 例如选择int做消息ID那么热前四个字节为消息ID后面为数据类的内容 实现 1.创建一个消息基类基类继承BaseData基类添加获取消息的ID的方法或者属性 2.让想要被发送的消息继承该类实现序列化反序列化的方法 3.写客户端和服务端收发处理消息的逻辑 分包与黏包 网络通信中由于各种因素造成的消息与消息之间出现的两种状态 分包一个消息分成了多个消息进行发送 黏包一个消息和另一个消息黏在一起 两者可能同时发生 解决办法 可以通过消息的长度来判断是否出现分包或者黏包 为消息添加长度消息长度记录消息的长度 心跳信息 在长连接中客户端和服务端之间定期发送的一种特殊数据包通知对方自己还在线以保证长连接的有效性 其发送时间间隔是固定的且持续因此称之为心跳消息 心跳消息可以避免非正常关闭客户端时服务器无法正常收到关闭连接消息同时避免客户端长期不发消息防火墙或者路由器会断开连接 当客户端主动断开时服务端无法得知客户端已经主动断开 在客户端中可以使用Disconect方法看是否因为之前直接Close()从而没有调用Disconect造成服务端无法及时获取状态仍然无法准确地让服务端得知客户端已经断开连接 可以考虑自定义退出消息 using System.Collections; using System.Collections.Generic; using UnityEngine;public class QuitMsg : BaseMsg {//继承自消息基类//主动发送一条断开连接的消息给服务端//重写函数public override int GetBytesNum(){return 8;}public override int Reading(byte[] bytes, int beginIndex 0){return 0;}public override byte[] Writing(){int index 0;byte[] bytes new byte[GetBytesNum()];WriteInt(bytes, GetID(), ref index);WriteInt(bytes, 0, ref index);return bytes;}public override int GetID(){return 1003;} }实现心跳消息 using System.Collections; using System.Collections.Generic; using UnityEngine;public class HeartMsg : BaseMsg {//继承消息基类public override int GetBytesNum(){return 8;}public override int Reading(byte[] bytes, int beginIndex 0){//不需要反序列化任何变量return 0;}public override byte[] Writing(){int index 0;byte[] bytes new byte[GetBytesNum()];WriteInt(bytes, GetID(), ref index);WriteInt(bytes, 0, ref index);return bytes;}public override int GetID(){return 999;} }客户端定时发送消息 服务端收心跳消息 记录收到消息的时间 异步通信 方法中的逻辑还没执行完便继续执行后面的内容 UNITY中的协同程序中的某系异步方法有的使用的是多线程有的使用的是迭代器分步执行 //线程回调 public void CountDownAsync(int second, UnityAction callBack){Thread t new Thread(() {while (true){print(second);Thread.Sleep(1000);--second;if (second 0)break;} //的目的是如果是空的则不会执行callBack?.Invoke();});t.Start();print(开始倒计时);}//让函数分布执行public async void CountDownAsync(int second){print(倒计时开始);//await-Task通过线程池开启一个线程 //本质上将函数分布执行await Task.Run(() {while (true){print(second);Thread.Sleep(1000);--second;if (second 0)break;}});print(倒计时结束);} UCP通信 udp不会对数据包进行合并发送不会出现黏包问题 UDP是不可靠连接消息传递过程中可能出现无序、丢包等情况 为了避免分包建议控制消息的大小在MTU最大传输单元范围内 MTU 最大传输单元用来通知对方所能接受数据服务单元的最大尺寸 局域网1472字节以内     互联网548字节以内 如果想要发送的消息过大可以进行手动分包但是手动分包的前提是解决UDP的无序和丢包的问题 UDP流程更简单效率高但是不可靠 FTP 是支持因特网文件传输的各种规则的集合使得文件可以被从一台主机拷贝到另一台主机上。此外FTP还提供登录、文件查询以及其他绘画控制等功能 FTP本质上是TCP通信通过FTP双发至少需要简历两个TCP连接一个称为控制连接一个成为数据连接 FTP的数据连接和控制连接方向一般是相反的 两种传输方式1.ASCII传输    2.二进制传输 FTP关键类 1.NetworkCredential 通信凭证类  命名空间System.Net 用于Ftp文件传输设置账号密码 NetworkCredrntial n new NetworkCredrntial(HFUTER,hfuter); 2.FtpWebRequest Ftp文件传输客户端操作类 命名空间System.Net 用于上传下载删除服务器上的文件 3.FtpWebResponse类 FtpWebRequest req FtpWebRequest.Create(new Uri(ftp://127.0.0.1/Test.txt)) as FtpWebRequest;//创建req.Abort();//停止Stream s req.GetRequestStream();//获取流对象FtpWebResponse res req.GetResponse() as FtpWebResponse;//返回FTP服务器响应 HTTP HTTP超文本传输协议就是一个在网络中上传下载文件的一套规则 其本质也是TCP通信因此不会丢包、不会乱序 1.以TCP方式工作 HTTP/1.1支持持久连接目前使用版本 2.HTTP是无状态的 HTTP不会记录客户端请求过的状态 3.元信息作为标头 主要数据前添加一段额外信息 请求类型和相应状态码 HTTP/1.1:GET\POST\HEAD\PUT\...... 响应状态码1xx\2xx\3xx\4xx\5xx GET:请求获取特定的资源 POST请求提交数据进行处理 HTTP常用状态码 200 OK404 NOT FOUND;405 不支持请求的方法501 服务器不能识别请求挥着没有实现指定的请求 关键类 HttpWebRequest类 命名空间System.Net HttpWebRequest是主要用于发送客户端请求的类 主要用于发送HTTP客户端请求给服务器可以进行消息通信、上传、下载等等操作   //创建新的WebRequest用于进行HTTP相关操作HttpWebRequest req HttpWebRequest.Create(new Uri(http://192.168.50.109:8000/Http_Server/)) as HttpWebRequest;//终止传输 req.Abort();//获取用于上传的流Stream s req.GetRequestStream();//返回HTTP服务器响应HttpWebResponse res req.GetResponse() as HttpWebResponse;//异步获取用于上传的流req.BeginGetRequestStream()异步获取返回的HTTP服务器响应//req.BeginGetResponse() HttpWebResponse类 命名空间System.Net 主要用于获取服务器反馈信息的类可以通过HttpWebRequest对象中的GetResponse()方法获取。当使用完毕时要使用Close释放 POST 上传文件到HTTP资源服务器需要遵守的规则 1:ContentType multipart/form-data; boundary边界字符串; 2:上传的数据必须按照格式写入流中 3:保证服务器允许上传 4:写入流前需要先设置ContentLength内容长度 WWW类 WWW是Unity提供给程序员简单的访问网页的类可以通过该类下载和上传一些数据在使用http协议时默认的请求类型是Get如果想要Post上传需要配合WWWFrom类使用该类在较新Unity版本中会提示过时但是仍可以使用新版本将其功能整合进了UnityWebRequest类 主要支持的协议 1.http://和https:// 超文本传输协议 2.ftp:// 文件传输协议但仅限于匿名下载 3.file:// 本地文件传输协议可以使用该协议异步加载本地文件PC、IOS、Android都支持 //创建 WWW www new WWW();//从下载数据返回一个音效切片AudioClip对象 www.GetAudioClip();//用下载数据中的图像来替换现有的一个Texture2D对象 Texture2D tex new Texture2D(100, 100);//从缓存加载AB包对象如果该包不在缓存则自动下载存储到缓存中以便以后直接从本地缓存中加载 WWW.LoadFromCacheOrDownload(, 1); UnityWebRequest 是一个Unity提供的一个模块化的系统类,用于构成HTTP请求和处理HTTP响应,主要目标是让Unity游戏和Web服务端进行交互,将之前WWW的相关功能都集成在了其中(新版本中都建议使用UnityWebRequest类来代替WWW类) 注意 1.UnityWebRequest和WWW一样需要配合协同程序使用 2.UnityWebRequest和WWW一样支持http、ftp、file协议下载或加载资源 3.UnityWebRequest能够上传文件到HTTP资源服务器 UnityWebRequest类的常用操作: //1.获取文本或2进制StartCoroutine(LoadText());//2.获取纹理StartCoroutine(LoadTexture());//3.获取AB包StartCoroutine(LoadAB());IEnumerator LoadText(){UnityWebRequest req UnityWebRequest.Get(http://192.168.50.109:8000/Http_Server/test.txt);//就会等待 服务器端响应后 断开连接后 再继续执行后面的内容yield return req.SendWebRequest();//如果处理成功 结果就是成功枚举if(req.result UnityWebRequest.Result.Success){//独立的处理对象print(req.downloadHandler.text);byte[] bytes req.downloadHandler.data;print(字节数组长度 bytes.Length);}else{print(获取失败: req.result req.error req.responseCode);}}IEnumerator LoadTexture(){//UnityWebRequest req UnityWebRequestTexture.GetTexture(http://192.168.50.109:8000/Http_Server/HFUTER.jpg);//UnityWebRequest req UnityWebRequestTexture.GetTexture(ftp://127.0.0.1/HFUTER.jpg);UnityWebRequest req UnityWebRequestTexture.GetTexture(file:// Application.streamingAssetsPath /test.png);yield return req.SendWebRequest();if (req.result UnityWebRequest.Result.Success){//(req.downloadHandler as DownloadHandlerTexture).texture//DownloadHandlerTexture.GetContent(req)//image.texture (req.downloadHandler as DownloadHandlerTexture).texture;image.texture DownloadHandlerTexture.GetContent(req);}elseprint(获取失败 req.error req.result req.responseCode);}IEnumerator LoadAB(){UnityWebRequest req UnityWebRequestAssetBundle.GetAssetBundle(http://192.168.50.109:8000/Http_Server/lua);req.SendWebRequest();while (!req.isDone){print(req.downloadProgress);print(req.downloadedBytes); //每帧执行yield return null;}//yield return req.SendWebRequest();print(req.downloadProgress);print(req.downloadedBytes);if (req.result UnityWebRequest.Result.Success){//AssetBundle ab (req.downloadHandler as DownloadHandlerAssetBundle).assetBundle;AssetBundle ab DownloadHandlerAssetBundle.GetContent(req);print(ab.name);}elseprint(获取失败 req.error req.result req.responseCode);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南宁网站优化排名推广wordpress+杂志模板下载

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 管理员;首页、个人中心、用户管理,站点管理员管理、汽车信息管理,借车信息管理,我的收藏管理、系统管理…

顺德网站建设jinqiye优秀的建筑设计作品

火狐浏览器操作方法 方法一 右键——>另存页面为 方法二 点击右边的三条横线——>另存页面为 谷歌浏览器操作方法 方法一 右键——>另存为 方法二

想让网站的文章都被收录怎么做南宁模板建站

String类详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 解密String类:探秘Java中的字符串魔法 在Java的世界里,String类犹如一位魔法…

徐州小学网站建设上市公司做网站有什么用

文章目录 这个错误通常是由于尝试在非寄存器类型的对象上进行过程赋值所引起的。在 Verilog 中,当使用 always 块时,其中的赋值操作应该只用于寄存器类型的变量,比如 reg 类型。非寄存器类型的信号(比如 wire)不能在 a…

景德镇网站网站建设门户网站建设总结

常用Web漏洞扫描工具汇总 常用Web漏洞扫描工具汇总1、AWVS,2、OWASP Zed(ZAP),3、Nikto,4、BurpSuite,5、Nessus,6、nmap7、X-ray还有很多不是非常知名,但可能也很大牌、也较常见的。…

白云网站(建设信科网络)免费制作单页的网站

不修改任何配置,scrapy针对302请求时如何处理的? 默认情况下,当爬虫发送请求并收到 HTTP 302 重定向响应时,Scrapy 会自动跟随重定向,也就是说,它会自动向重定向的 URL 发送一个新的请求,并且在…

企业网站被黑后如何处理杭州开发区网站建设

事务、快照和累积快照 事务事实表跟踪定义业务过程的个体行为,并且支持几种描述这种行为事实。可以提供丰富的分析型能力,时常充当原子数据的粒度化仓库快照事实表周期性地采样状态度量,这些度量与一系列事务的累积效果相当,但是…

怎样才能创建自己的网站信息发布网站推广技巧

Harmony是一个开放源代码库,旨在在运行时替换、修饰或修改任何现有C#方法。它的主要用在用Mono语言编写的游戏和插件,但是该技术可以与任何.NET版本一起使用。它还照顾对同一方法的多次更改(它们累积而不是覆盖)。它为…

山西教育平台网站建设企业邮箱入口163

需求: 在使用dockerfile 编写镜像的时候copy 了文件,然后又修改了文件的 owner 发现镜像变大了期望不要变大 进程: dockerfile 来创建的镜像是根据命令一行一行叠加的大小于是这边将copy 的命令改成 run 并且将权限的修改也放在同一行not …

网站设计论坛广州网站开发定制方案

本系列文章适合三类同学:1.希望学习小程序开发;2.希望无代码、低代码拥有自己的小程序;3.快速搭建小程序交作业、交毕设的大学生 本系列文章将推出配套桌面端软件,配合软件,可实现傻瓜式开发小程序,请有需求…

音响 东莞网站建设技术支持做毕业网站的周记

K8S:K8S自动化运维容器化(Docker)集群 一.k8s概述 1.k8s是什么 (1)K8S全程为Kubernetes,由于K到S直接有8个字母简称为K8S。 (2)版本:目前一般是1.18~1.2.0,后续可能会到1.24-1.2…

上海普陀网站建设wordpress主题换图片不显示

导言 Rust是一种以安全性和高效性著称的系统级编程语言,其设计哲学是在不损失性能的前提下,保障代码的内存安全和线程安全。在Rust中,运算符重载是一种非常强大的特性,允许我们对标准运算符进行自定义实现,从而灵活定…

中小企业网站建设价格网站流量分布

数据库是什么 数据库是一种用来存储数据的仓库,是一种高效存储和处理数据的介质(载体)。我们通常口中所说的数据库指的是数据库管理系统(DBMS),是一种用于方便管理数据库的软件。 数据库的分类 根据存储…

河北高端网站建设网站开发string文件

视频图像处理仿真测试系统 1、仿真测试系统框架 一个完善的仿真测试系统对于图像处理算法的设计至关重要。这个测试系统至少要完成以下功能: (1)模拟可配置的视频流(单帧的视频即为一幅图像)。 (2)模拟视频捕获,生成视频数据。 (3)测试系统与testbench及视频流的数据…

济南网站建设咨询小七网站开发问题

1.首先需要使用 composer 在命令行安装最新版本的 intervention/image : composer require intervention/image2.注册服务提供者及别名(Laravel 版本 ≤ 5.4) 如果你的 laravel 版本小于或等于 5.4,安装后需要注册服务提供者和别…

如何做网站搭桥链接wordpress 路径文件大小

MQ异步通信优缺点: 优点: 吞吐量提升:无需等待订阅者处理完成,响应更快速 故障隔离:服务没有直接调用,不存在级联失败问题 调用间没有阻塞,不会造成无效的资源占用 耦合度极低,每个服务都可以灵活插拔,可替换 流量削峰:不管发布事件的流量波动多大,都由Broker接收,…

网站建设从入门到精通+网盘支部品牌建设

在java程序中集成ffmpeg库: 编写JNI接口编译 FFmpeg 库和 JNI 接口在 Java 代码中加载 JNI 接口 在android程序中也需要一样的步骤。或者用一些别人已经编译好的一些库,比如android中的ffmpeg-android-java或者mobile-ffmpeg

烟台网站建设公司地址app开发网站公司

文章目录 前言python 语法入门1. 语句分隔符2. 注释3. pep8规范4. 变量5. 扩展5.1. 运行此行代码的过程 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会…

建网站备案需要的材料外贸营销推广

爬梯子、跳跃游戏、最小路径和、杨辉三角、接雨水。每题做详细思路梳理,配套Python&Java双语代码, 2024.03.05 可通过leetcode所有测试用例。 目录 70. 爬楼梯 解题思路 完整代码 Python Java 55. 跳跃游戏 解题思路 完整代码 Python 代码…

江西建设局网站深圳入户

C语言刷题 博主用的刷题网站:题库 - 蓝桥云课 (lanqiao.cn) 小伙伴们可以去试试!!! First question 题目:成绩统计 题目描述:小蓝给学生们组织了一场考试,卷面总分为 100 分,每…