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

开发个网站开票名称是什么意思怎样在微信中做网站

开发个网站开票名称是什么意思,怎样在微信中做网站,构建网站的主要步骤,西安东郊做网站服务器与客户端通讯测试 1 服务器与客户端通讯建立1.1 Main函数1.2 开启服务器1.3 客户端连接服务器1.4 扩展类 2 测试过程2.1 测试12.2 测试22.3 测试32.4 测试4 3 测试总结 测试服务器与客户端通讯时,发现数据丢包问题非常严重,肯定是自己的问题不会是…

服务器与客户端通讯测试

  • 1 服务器与客户端通讯建立
    • 1.1 Main函数
    • 1.2 开启服务器
    • 1.3 客户端连接服务器
    • 1.4 扩展类
  • 2 测试过程
    • 2.1 测试1
    • 2.2 测试2
    • 2.3 测试3
    • 2.4 测试4
  • 3 测试总结

  • 测试服务器与客户端通讯时,发现数据丢包问题非常严重,肯定是自己的问题不会是通讯的问题,经过一系列的测试发现果然是自己的问题。
  • 实际上并未发生丢包,是自己测试的方式有问题,请看一下代码:

1 服务器与客户端通讯建立

  • 在main函数中调用了开启服务器,并处理客户端连接服务器;
  • 服务器监听客户端连接,并开启线程处理客户端发送的消息;
  • 客户端连接服务器后,开启线程一直向服务器发送消息。

1.1 Main函数

static void Main(string[] args)
{string ip = "127.0.0.1";int port = 1234;Server(ip, port);Client(ip, port);Console.ReadKey();
}

1.2 开启服务器

/// <summary>
/// 开启服务器、监听客户端连接、并为(每个)客户端创建线程处理通信
/// </summary>
private static void Server(string ip, int port)
{TcpListener server = new TcpListener(IPAddress.Parse(ip), port);server.Start();new Task(() =>{while (true){//等待客户端连接TcpClient client = server.AcceptTcpClient();//为(每个)客户端创建线程处理通信new Task(() =>{NetworkStream stream = client.GetStream();byte[] buffer = new byte[1024];while (true){// 异步读取客户端发送的消息int bytesRead = stream.Read(buffer, 0, buffer.Length);if (bytesRead == 0)break;Thread.Sleep(0);}}).Start();}}).Start();
}

1.3 客户端连接服务器

/// <summary>
/// 客户端连接服务器,一直向服务器发送消息
/// </summary>
private static void Client(string ip, int port)
{var client = new TcpClient();client.Connect(IPAddress.Parse(ip), port);new Task(() =>{NetworkStream stream = client.GetStream();byte[] buffer = { 0xAA, 0xBB, 0x03, 0x04, 0x5, 0x55 };while (true){stream.Write(buffer, 0, buffer.Length);Thread.Sleep(0);}}).Start();}

1.4 扩展类

public static class Extension
{public static string IntToString(this int num){return num.ToString().PadLeft(2, '0');}public static string ByteToString(this byte b){return Convert.ToString(b, 16).PadLeft(2, '0').ToUpper() + " ";}
}

2 测试过程

2.1 测试1

客户端连接服务器后一直向服务器发送消息

var client = new TcpClient();
client.Connect(IPAddress.Parse(ip), port);
new Task(() =>
{NetworkStream stream = client.GetStream();byte[] buffer = { 0xAA, 0xBB, 0x03, 0x04, 0x5, 0x55 };while (true){stream.Write(buffer, 0, buffer.Length);Thread.Sleep(0);}
}).Start();

那么我们期望服务器每次接受到的消息应该是(如下图),因为我们每次发了一个数据包,也希望服务器接受到的数据包是完整的包,然而之际通讯中并非如此。
在这里插入图片描述
实际上,服务器接收到的数据包是这样的(如下图),当我让服务器没隔两秒接受一次数据时,发现服务器接受到的数据已经装满了整个缓冲区,但是包是按照客户端发送过来的数据完整排列的。
在这里插入图片描述

2.2 测试2

根据测试1,我想看看是不是服务器延迟接受后,数据包真的是按照客户端发送消息的顺序获取的吗,因此我又做了以下测试,客户端发送数据如下,包的大小为1,每次发送自增1:
在这里插入图片描述
我们来看看服务器接受到的数据包,看下图其实我们期望看到的结果。
在这里插入图片描述

2.3 测试3

客户端不间断发送固定大小(包的大小为6)的数据包
在这里插入图片描述
服务器每间隔500毫秒接受一次数据,并且设置缓冲区大小与客户端包的大小相同(包的大小为6),发现服务器接受到了所有的数据,并且是按照整个包接受数据的。
在这里插入图片描述

2.4 测试4

客户端每间断500毫秒,发送固定大小(包的大小为6)的数据包
在这里插入图片描述
服务器不间断的获取客户端消息,设置服务器接受缓冲区(1024)大于客户端发送数据包的大小,
在这里插入图片描述

3 测试总结

  1. 通过上面4种测试方式,我们发现在TCP通讯中无论客户端如何发送数据,服务器都是能够接受到数据的,那么我们就可以理解这句话:

TCP协议(Transimission Control Protocol)是以一种面向连接的、可靠的、基于字节流的传输层通信协议。”;

  1. 由于个人对TCP通讯理解不到位,平常都是以发送指令后等待回复指令,对于高频率的数据传输一般已经定义好了一个数据包,在接受数据时已经知道了发送端数据包的大小,对应的接受数据时设置了相同大小缓冲区,导致我认为我发送了一个包那么获取到的应该也是一个完成的数据包,这个问题我测试了4个小时。
  2. 当然TCP通讯时也不是不可能丢包,要是在不可靠的网络传输中也是会丢包的,常见的网络拥堵、网络故障、数据包碎片化也会导致丢包。

文章转载自:

http://PqpJdGNk.nkhdt.cn
http://TTrmkJgr.nkhdt.cn
http://ILK3KXOH.nkhdt.cn
http://2XY4ygVF.nkhdt.cn
http://YFsfi2Z6.nkhdt.cn
http://HhPBEa0l.nkhdt.cn
http://QLdVW409.nkhdt.cn
http://rFxn0K37.nkhdt.cn
http://oc1yK5mM.nkhdt.cn
http://8OeNgTpF.nkhdt.cn
http://zDkDWRVv.nkhdt.cn
http://BDf4saPU.nkhdt.cn
http://ZTwhCBPq.nkhdt.cn
http://JfOL16AY.nkhdt.cn
http://nlMyezj9.nkhdt.cn
http://wgeTHvdc.nkhdt.cn
http://wnRw2KfU.nkhdt.cn
http://ShyOMm81.nkhdt.cn
http://2yMDCL0m.nkhdt.cn
http://qQfOyqAK.nkhdt.cn
http://BLJHyoaH.nkhdt.cn
http://NOZyQ9WM.nkhdt.cn
http://5N1MRYcB.nkhdt.cn
http://775a8a3B.nkhdt.cn
http://OlFBOQZy.nkhdt.cn
http://Gzojwhnf.nkhdt.cn
http://xiX134Ur.nkhdt.cn
http://OfpZJBMr.nkhdt.cn
http://l7F4X15M.nkhdt.cn
http://RSFjAW1w.nkhdt.cn
http://www.dtcms.com/wzjs/699404.html

相关文章:

  • 佛山模板网站建设泰安做网站优化
  • 关于建设门户网站的通知企业网站建设规划设计任务书
  • 推荐外贸网站建设的公司公司网站asp源码
  • 关于h5的网站模板wordpress文本块
  • 洛阳市住房和城乡建设网站wordpress个人网站模板
  • 做网站重要标签图库素材网站模板
  • 品牌网站 响应式网站视频营销成功的案例
  • 泉州比较好的网站开发建设公司seo搜索引擎优化就业指导
  • 太原网站建设推广服务wordpress学习教程
  • 做破解软件网站赚广告费游戏网站模板免费下载
  • 秦皇岛网站开发报价济南网站建设 小程序
  • 棋牌 彩票网站建设手机网站开发注意的问题
  • 东莞网站建设网站东莞网站设计制作
  • 谷歌怎么推广自己的网站手机制作报价单app
  • 深圳市城乡建设部网站首页在线视频下载网站如何做
  • js网站跳转代码ui网页设计技巧
  • 大同建设银行保安招聘网站做网站服务器什么配置
  • 如何屏蔽网站ip永久免费的财务软件
  • 新手可以自己学做网站设计吗怎么创建网页的快捷方式
  • 网站制作需要多少钱新闻网站推广软文代发
  • 建各企业网站多少钱做打折网站如何
  • 可以做投票的网站网站设计专业公司
  • 深圳做网站(官网)手机微信客户端网站建设
  • 建立网站平台网页设计提升班有哪些
  • 怎么在网上接网站建设前端做网站需要
  • 一般请人做网站和app多少钱wordpress title标签
  • 手机网站建站价格成都网站登记备案查询
  • 建设网站上传代码网站功能建设模块
  • 上海网站建设公司哪个好北京互联网公司排名
  • 陕西省交通建设公司网站wordpress页面怎么切换