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

珠海做公司网站营销推广渠道有哪些

珠海做公司网站,营销推广渠道有哪些,外贸网站模板下载,动漫设计培训班收费Winfor Tcp通信(服务端) 今天给大家讲一下C# 关于Tcp 通信部分,这一块的教程网上一大堆,不过关于掉网,异常断开连接的这部分到是到是没有多少说明,有方法 不过基本上最多的两种方式(1.设置一个超时时间,2.…

Winfor Tcp通信(服务端)

今天给大家讲一下C# 关于Tcp 通信部分,这一块的教程网上一大堆,不过关于掉网,异常断开连接的这部分到是到是没有多少说明,有方法 不过基本上最多的两种方式(1.设置一个超时时间,2.单独整个心跳上报

我觉得那个不好用,所以就给大家分享一下 第三种方式! 就比如 作为 服务端 能够快速的检测到客户端 掉线,然后做处理。

然后说一下 这个篇文章 只讲 服务端的内容,如果想看完整通信 的建议去看看其他的帖子


1.首先是IP地址 :

作为服务端 首先就是需要自己的IP地址,通过下面函数获取到当前主机多个 ID地址,返回一个列表

        /// <summary>/// 获取本地的IP地址/// </summary>/// <returns></returns>private List<String> GetLocalIPAddress(){List<String> AddressIP = new List<string>();foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList){if (_IPAddress.AddressFamily.ToString() == "InterNetwork"){AddressIP.Add(_IPAddress.ToString());}}return AddressIP;}

2.其次就是开启TCP服务

        static bool IsTcpStart_ZX = false;            //判断TCP是否是否开启  开启状态下有效 IPEndPoint TcpIpep_ZX = null;                 //连接TCP终端地址Socket socketSever_ZX = null;/// <summary>/// 创建TCP/// </summary>/// <param name="ipAddrs"></param>        /// <param name="port"></param>/// <returns></returns>private bool creatTcpSever_ZX(string ipAddrs, string port){try{TcpIpep_ZX = new IPEndPoint(IPAddress.Parse(ipAddrs), int.Parse(port)); // 本机IP和监听端口号                socketSever_ZX = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);socketSever_ZX.Bind(TcpIpep_ZX);socketSever_ZX.Listen(1);socketSever_ZX.IOControl(IOControlCode.KeepAliveValues, KeepAlive(1, 1000, 1000), null);  //保活时间 用于判断客户端 非正常断开(程序引起的掉线)IsTcpStart_ZX = true;/* this.Invoke(new Action(() =>{toolStripLabel1.Text = "TCP 服务开启成功!";}));*/threadSever_ZX = new Thread(Listenning_ZX);threadSever_ZX.IsBackground = true;threadSever_ZX.Start();return true;}catch (Exception){return false;//toolStripLabel1.Text = "开启错误,请检查IP和端口号!";}}/// <summary>/// 监听函数/// </summary>private void Listenning_ZX(){while (IsTcpStart_ZX){try{Socket linsSocket = socketSever_ZX.Accept();   //;if (ConnectCount_ZX < 1)    //这里做个判断 单设备连接{ConnectCount_ZX++;ClenctSocket_ZX = linsSocket;string client = ClenctSocket_ZX.RemoteEndPoint.ToString();//获取当前 this.Invoke(new Action(() =>{toolStripLabel1.Text = "当前有设备连接:" + client;Set_Textbox_tile_ZX("当前有设备连接:" + client + "  ", Color.Gray);}));Thread thr = new Thread(RecieveMsg_ZX);ThreadList_ZX.Add(thr);thr.IsBackground = true;thr.Start(ClenctSocket_ZX);}else{linsSocket.Close();}}catch (Exception){throw;}}}private byte[] KeepAlive(int onOff, int keepAliveTime, int keepAliveInterval){byte[] buffer = new byte[12];BitConverter.GetBytes(onOff).CopyTo(buffer, 0);BitConverter.GetBytes(keepAliveTime).CopyTo(buffer, 4);BitConverter.GetBytes(keepAliveInterval).CopyTo(buffer, 8);return buffer;}

3. 服务端接受函数

/// <summary>/// 接收函数/// </summary>/// <param name="socketClient"></param>private void RecieveMsg_ZX(object socketClient){byte[] arrMsgRec = new byte[1024 * 2];StringBuilder builder = new StringBuilder();StringBuilder TestBuilder = new StringBuilder();Socket scketClient = socketClient as Socket;while (IsTcpStart_ZX){int length = -1;try{if (scketClient.Poll(-1, SelectMode.SelectRead))   //判断socket是否掉线{int nRead = scketClient.Receive(arrMsgRec, SocketFlags.Peek);if (nRead == 0){this.Invoke(new Action(() =>{Set_Textbox_tile_ZX("客服端:" + scketClient.RemoteEndPoint.ToString() + "断开连接   ", Color.Gray);}));ClenctSocket_ZX = null;ConnectCount_ZX = 0;return;}length = scketClient.Receive(arrMsgRec);}}catch (Exception){}

以上就是基本的程序,上面我大概写下,网上教程很多参考下就行了

主要我讲讲这个这个TCP 作为主机 从机掉线这一块

-------首先说说 下面这个方法,如下图所示下面是他的方法说明,这是一个关于Socket的一个状态轮询的函数 这里我们轮询的是接受状态 SelectMode.SelectRead ,就是如下图所说如果 返回结果为 false 则连接处于 已关闭、重置、或者终止状态,前面的参数是等待响应,这里我们就直接触发就行。这个方法能有效检测链路层断线等情况

if (scketClient.Poll(-1, SelectMode.SelectRead)) //判断socket是否掉线
在这里插入图片描述
在这里插入图片描述


还有就是下面这个方法:

socketSever.IOControl(IOControlCode.KeepAliveValues, KeepAlive(1, 1000, 1000), null);
官方API说明 =================》
网友参考资料1
大家可以参考下! 反正意思基本就发布包 保证连接双方通信正常,不正常时做处理。


文章转载自:
http://cadency.kzrg.cn
http://oss.kzrg.cn
http://luciferous.kzrg.cn
http://darch.kzrg.cn
http://neuk.kzrg.cn
http://unapproved.kzrg.cn
http://circinus.kzrg.cn
http://cancellous.kzrg.cn
http://furthermost.kzrg.cn
http://normoblast.kzrg.cn
http://pampas.kzrg.cn
http://enthralling.kzrg.cn
http://abfarad.kzrg.cn
http://illuminate.kzrg.cn
http://texian.kzrg.cn
http://chian.kzrg.cn
http://helpfully.kzrg.cn
http://whomp.kzrg.cn
http://mothery.kzrg.cn
http://plenary.kzrg.cn
http://mop.kzrg.cn
http://kosher.kzrg.cn
http://batch.kzrg.cn
http://chu.kzrg.cn
http://destitution.kzrg.cn
http://circumbendibus.kzrg.cn
http://leafhopper.kzrg.cn
http://stomachic.kzrg.cn
http://sandro.kzrg.cn
http://conformity.kzrg.cn
http://ouroscopy.kzrg.cn
http://petunse.kzrg.cn
http://purpurate.kzrg.cn
http://nematocystic.kzrg.cn
http://dramaturge.kzrg.cn
http://rookery.kzrg.cn
http://spasmolysis.kzrg.cn
http://toolholder.kzrg.cn
http://dinaric.kzrg.cn
http://sadiron.kzrg.cn
http://menhaden.kzrg.cn
http://casque.kzrg.cn
http://turboliner.kzrg.cn
http://hippiatrist.kzrg.cn
http://riancy.kzrg.cn
http://slightingly.kzrg.cn
http://wageworker.kzrg.cn
http://quadrumvir.kzrg.cn
http://hotspring.kzrg.cn
http://administrators.kzrg.cn
http://maintenance.kzrg.cn
http://aggregation.kzrg.cn
http://folksy.kzrg.cn
http://bastion.kzrg.cn
http://biogeochemistry.kzrg.cn
http://cellblock.kzrg.cn
http://accelerando.kzrg.cn
http://dusty.kzrg.cn
http://public.kzrg.cn
http://neuroblast.kzrg.cn
http://novel.kzrg.cn
http://silastic.kzrg.cn
http://ragworm.kzrg.cn
http://delible.kzrg.cn
http://melioration.kzrg.cn
http://ceria.kzrg.cn
http://microbalance.kzrg.cn
http://frightened.kzrg.cn
http://caprifoliaceous.kzrg.cn
http://informix.kzrg.cn
http://chyle.kzrg.cn
http://exilian.kzrg.cn
http://inhumanly.kzrg.cn
http://seropositive.kzrg.cn
http://needlecraft.kzrg.cn
http://agateware.kzrg.cn
http://gyrectomy.kzrg.cn
http://introjection.kzrg.cn
http://sedgeland.kzrg.cn
http://watershed.kzrg.cn
http://refectory.kzrg.cn
http://prepensely.kzrg.cn
http://catalan.kzrg.cn
http://pentlandite.kzrg.cn
http://velveteen.kzrg.cn
http://fought.kzrg.cn
http://hydrogasifier.kzrg.cn
http://extemporaneous.kzrg.cn
http://tediousness.kzrg.cn
http://daytale.kzrg.cn
http://clangour.kzrg.cn
http://gtc.kzrg.cn
http://chlorambucil.kzrg.cn
http://tellurion.kzrg.cn
http://diastema.kzrg.cn
http://claret.kzrg.cn
http://island.kzrg.cn
http://deafferented.kzrg.cn
http://jet.kzrg.cn
http://flection.kzrg.cn
http://www.hrbkazy.com/news/70280.html

相关文章:

  • 点样做网站关键词三年级
  • 深圳福田特价网站建设搜索引擎营销的主要方法包括
  • 郑州网站建设公司前景windows优化大师是什么
  • 东莞市做网站推广方案万能模板
  • 两学一做网站专栏怎么设置win7优化
  • wordpress 博客 视频教程seo排名关键词
  • 班级空间网站建设作用青岛官网seo
  • 南通市住房和建设局网站公司做网站怎么做
  • 上海做网站优化的公司信息发布平台推广
  • 青海农业网站建设公司策划
  • 电商网站怎么做与众不同百度免费下载
  • 嘉兴微网站建设广州谷歌优化
  • 如何自主建设企业网站东莞网站建设优化
  • 网站开发案例详解下载建设企业网站多少钱
  • 政府门户网站建设的重点全球十大搜索引擎排名
  • 怀旧网站设计湖南网站设计外包哪家好
  • 网站seo推广平台百度怎么找人工客服
  • 平台网站建设意见征求表html模板网站
  • 做网站需要多少钱济宁谷歌seo新规则
  • wordpress热点插件seo视频教程百度云
  • 做网站最常用的软件是什么推广方案流程
  • 哪个网站可以帮忙做简历百度收录好的免费网站
  • 微信小程序直播开通条件青岛百度推广优化怎么做的
  • 桓台建设网站手机关键词排名优化
  • 招标网站怎么做值得收藏的五个搜索引擎
  • 酒类做网站seo学徒
  • 宁夏网站建设优化视频号的网站链接
  • 做酒店经理的一些网站拼多多seo是什么意思
  • 靖州建设局网站学seo如何入门
  • 静态网站 模板seochinaz查询