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

担保公司网站建设方案WordPress 多厂商

担保公司网站建设方案,WordPress 多厂商,学校网站建设的流程,素材网站有哪些文章目录 1️⃣ 通信相关说明1.1服务端与客户端1.2 信息发送原理1.3 信息接收原理 2️⃣ socket代码2.1 客户端代码2.2 服务端代码 3️⃣ 定时任务处理报文3.1 Timers定时任务 优质资源分享 作者#xff1a;xcLeigh 文章地址#xff1a;https://blog.csdn.net/weixin_4315141… 文章目录 1️⃣ 通信相关说明1.1服务端与客户端1.2 信息发送原理1.3 信息接收原理 2️⃣ socket代码2.1 客户端代码2.2 服务端代码 3️⃣ 定时任务处理报文3.1 Timers定时任务 优质资源分享 作者xcLeigh 文章地址https://blog.csdn.net/weixin_43151418/article/details/136257608 C# winfroms使用socket客户端服务端代码详解声明Socket 第一个参数寻址方式第二个参数传输数据的方式第三个参数通信协议Socket socket new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); 开启侦听 参数是指可以连接的客户端数量socket.Listen(10);socket.Accept();这里需要注意Accept()会阻塞线程直到连接上客户端。如果放在主线程中会阻塞前台操作。需要创建一个新的线程。Accept()返回一个socket客户端连接上之后服务端自动生成一个socket和连接的客端通信。连接成功后向客户端发送“连接成功” 1️⃣ 通信相关说明 1.1服务端与客户端 启动服务端后,服务端通过持续监听客户端发来的请求,一旦监听到客户端传来的信息请求,两端便可以互发信息了. 服务端需要绑定一个IP,用于客户端在网络中寻找并建立连接支持局域网内部客户端与服务端之间的互相通信 1.2 信息发送原理 将手动输入字符串信息转换成机器可以识别的字节数组,然后调用套接字的Send()方法将字节数组发送出去 1.3 信息接收原理 调用套接字的Receive()方法,获取对端传来的字节数组,然后将其转换成人可以读懂的字符串信息 2️⃣ socket代码 2.1 客户端代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms;namespace TcpMsgClient {public partial class FrmClient : Form{public FrmClient(){InitializeComponent();//关闭对文本框的非法线程操作检查TextBox.CheckForIllegalCrossThreadCalls false;}//创建 1个客户端套接字 和1个负责监听服务端请求的线程Socket socketClient null;Thread threadClient null;/// summary/// 连接服务端事件/// /summary/// param namesender/param/// param namee/paramprivate void btnListenServer_Click(object sender, EventArgs e){//定义一个套字节监听 包含3个参数(IP4寻址协议,流式连接,TCP协议)socketClient new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//需要获取文本框中的IP地址IPAddress ipaddress IPAddress.Parse(this.txtIP.Text.Trim());//将获取的ip地址和端口号绑定到网络节点endpoint上IPEndPoint endpoint new IPEndPoint(ipaddress, int.Parse(this.txtPort.Text.Trim()));//这里客户端套接字连接到网络节点(服务端)用的方法是Connect 而不是Bindtry{socketClient.Connect(endpoint);this.txtMsg.AppendText(客户端连接服务端成功 \r\n);this.btnListenServer.Enabled false;//创建一个线程 用于监听服务端发来的消息threadClient new Thread(RecMsg);//将窗体线程设置为与后台同步threadClient.IsBackground true;//启动线程threadClient.Start();}catch (Exception ex) {this.txtMsg.AppendText(远程服务端断开连接失败 \r\n);}}/// summary/// 接收服务端发来信息的方法/// /summaryprivate void RecMsg(){while (true) //持续监听服务端发来的消息{try{//定义一个1M的内存缓冲区 用于临时性存储接收到的信息byte[] arrRecMsg new byte[1024 * 1024];//将客户端套接字接收到的数据存入内存缓冲区, 并获取其长度int length socketClient.Receive(arrRecMsg);//将套接字获取到的字节数组转换为人可以看懂的字符串string strRecMsg Encoding.UTF8.GetString(arrRecMsg, 0, length);//将发送的信息追加到聊天内容文本框中txtMsg.AppendText(服务端 GetCurrentTime() \r\n strRecMsg \r\n);}catch (Exception ex) {this.txtMsg.AppendText(远程服务器已中断连接\r\n);this.btnListenServer.Enabled true;break;}}}/// summary/// 发送字符串信息到服务端的方法/// /summary/// param namesendMsg发送的字符串信息/paramprivate void ClientSendMsg(string sendMsg){try {//将输入的内容字符串转换为机器可以识别的字节数组byte[] arrClientSendMsg Encoding.UTF8.GetBytes(sendMsg);//调用客户端套接字发送字节数组socketClient.Send(arrClientSendMsg);//将发送的信息追加到聊天内容文本框中txtMsg.AppendText(天涯 GetCurrentTime() \r\n sendMsg \r\n);}catch(Exception ex){this.txtMsg.AppendText(远程服务器已中断连接,无法发送消息 \r\n);}}private void btnSendMsg_Click(object sender, EventArgs e){//调用ClientSendMsg方法 将文本框中输入的信息发送给服务端ClientSendMsg(this.txtClientSendMsg.Text.Trim());this.txtClientSendMsg.Clear();}private void txtClientSendMsg_KeyDown(object sender, KeyEventArgs e){//当光标位于文本框时 如果用户按下了键盘上的Enter键if (e.KeyCode Keys.Enter){//则调用客户端向服务端发送信息的方法ClientSendMsg(this.txtClientSendMsg.Text.Trim());this.txtClientSendMsg.Clear();}}/// summary/// 获取当前系统时间的方法/// /summary/// returns当前时间/returnsprivate DateTime GetCurrentTime(){DateTime currentTime new DateTime();currentTime DateTime.Now;return currentTime;}} }2.2 服务端代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms;namespace TcpMsgServer {public partial class FrmServer : Form{public FrmServer(){InitializeComponent();//关闭对文本框的非法线程操作检查TextBox.CheckForIllegalCrossThreadCalls false;}Thread threadWatch null; //负责监听客户端的线程Socket socketWatch null; //负责监听客户端的套接字/// summary/// 启动服务/// /summary/// param namesender/param/// param namee/paramprivate void btnServerConn_Click(object sender, EventArgs e){try{//定义一个套接字用于监听客户端发来的信息 包含3个参数(IP4寻址协议,流式连接,TCP协议)socketWatch new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//服务端发送信息 需要1个IP地址和端口号IPAddress ipaddress IPAddress.Parse(this.txtIP.Text.Trim()); //获取文本框输入的IP地址//将IP地址和端口号绑定到网络节点endpoint上IPEndPoint endpoint new IPEndPoint(ipaddress, int.Parse(this.txtPort.Text.Trim())); //获取文本框上输入的端口号//监听绑定的网络节点socketWatch.Bind(endpoint);//将套接字的监听队列长度限制为20socketWatch.Listen(20);//创建一个监听线程threadWatch new Thread(WatchConnecting);//将窗体线程设置为与后台同步threadWatch.IsBackground true;//启动线程threadWatch.Start();//启动线程后 txtMsg文本框显示相应提示txtMsg.AppendText(开始监听客户端传来的信息! \r\n);this.btnServerConn.Enabled false;}catch (Exception ex) {txtMsg.AppendText(服务端启动服务失败! \r\n);this.btnServerConn.Enabled true;}}//创建一个负责和客户端通信的套接字Socket socConnection null;/// summary/// 监听客户端发来的请求/// /summaryprivate void WatchConnecting(){while (true) //持续不断监听客户端发来的请求{socConnection socketWatch.Accept();txtMsg.AppendText(客户端连接成功! \r\n);//创建一个通信线程ParameterizedThreadStart pts new ParameterizedThreadStart(ServerRecMsg);Thread thr new Thread(pts);thr.IsBackground true;//启动线程thr.Start(socConnection);}}/// summary/// 发送信息到客户端的方法/// /summary/// param namesendMsg发送的字符串信息/paramprivate void ServerSendMsg(string sendMsg){try{//将输入的字符串转换成 机器可以识别的字节数组byte[] arrSendMsg Encoding.UTF8.GetBytes(sendMsg);//向客户端发送字节数组信息socConnection.Send(arrSendMsg);//将发送的字符串信息附加到文本框txtMsg上txtMsg.AppendText(服务器 GetCurrentTime() \r\n sendMsg \r\n);}catch (Exception ex) {txtMsg.AppendText(客户端已断开连接,无法发送信息 \r\n);}}/// summary/// 接收客户端发来的信息/// /summary/// param namesocketClientPara客户端套接字对象/paramprivate void ServerRecMsg(object socketClientPara){Socket socketServer socketClientPara as Socket;while (true){//创建一个内存缓冲区 其大小为1024*1024字节 即1Mbyte[] arrServerRecMsg new byte[1024 * 1024];try{//将接收到的信息存入到内存缓冲区,并返回其字节数组的长度int length socketServer.Receive(arrServerRecMsg);//将机器接受到的字节数组转换为人可以读懂的字符串string strSRecMsg Encoding.UTF8.GetString(arrServerRecMsg, 0, length);//将发送的字符串信息附加到文本框txtMsg上txtMsg.AppendText(天涯 GetCurrentTime() \r\n strSRecMsg \r\n);}catch (Exception ex) {txtMsg.AppendText(客户端已断开连接 \r\n);break;}}}/// summary/// 发送消息到客户端/// /summary/// param namesender/param/// param namee/paramprivate void btnSendMsg_Click(object sender, EventArgs e){//调用 ServerSendMsg方法 发送信息到客户端ServerSendMsg(this.txtSendMsg.Text.Trim());this.txtSendMsg.Clear();}/// summary/// 快捷键 Enter 发送信息/// /summary/// param namesender/param/// param namee/paramprivate void txtSendMsg_KeyDown(object sender, KeyEventArgs e){//如果用户按下了Enter键if (e.KeyCode Keys.Enter){//则调用 服务器向客户端发送信息的方法ServerSendMsg(txtSendMsg.Text.Trim());this.txtSendMsg.Clear();}}/// summary/// 获取当前系统时间的方法/// /summary/// returns当前时间/returnsprivate DateTime GetCurrentTime(){DateTime currentTime new DateTime();currentTime DateTime.Now;return currentTime;}/// summary/// 获取本地IPv4地址/// /summary/// returns/returnspublic IPAddress GetLocalIPv4Address() {IPAddress localIpv4 null;//获取本机所有的IP地址列表IPAddress[] IpList Dns.GetHostAddresses(Dns.GetHostName());//循环遍历所有IP地址foreach (IPAddress IP in IpList) {//判断是否是IPv4地址if (IP.AddressFamily AddressFamily.InterNetwork){localIpv4 IP;}else {continue;}}return localIpv4;}/// summary/// 获取本地IP事件/// /summary/// param namesender/param/// param namee/paramprivate void btnGetLocalIP_Click(object sender, EventArgs e){//接收IPv4的地址IPAddress localIP GetLocalIPv4Address();//赋值给文本框this.txtIP.Text localIP.ToString();}} } 3️⃣ 定时任务处理报文 3.1 Timers定时任务 在内部多线程情况下这个定时任务支持启动设定条件满足后执行任务不满做执行设定任务然后自动销毁。 using SimulateMaster.Bean; using SimulateMaster.page; using Sunny.UI; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Timers;namespace SimulateMaster.Util {public class MsgReply{private ServiceMain _serviceMain;private readonly System.Timers.Timer _timer;public static string clicentInfo_value ; //设备信息【IP端口】public static string mainName_value; //窗体名称public static string msgContent MsgUtils.MSG_QDLL;//报文内容public int msgNum0;//重发次数 最多三次public MsgReply(string msgValue,string clientInfo,string mainName, ServiceMain serviceMain){clicentInfo_value clientInfo;mainName_value mainName;_serviceMain serviceMain;msgContent msgValue;// 设置定时器间隔单位为毫秒_timer new System.Timers.Timer(5000);// 添加 Elapsed 事件处理程序_timer.Elapsed OnTimerElapsed;// 开始计时器_timer.Start();}protected virtual void OnTimerElapsed(object sender, ElapsedEventArgs e){FileUtils.WriteFileLog(定时任务触发没有接收到回复报文!, 报文接收定时任务);}public void Dispose(){FileUtils.WriteFileLog(clicentInfo_value 定时任务关闭!, 报文接收定时任务);if (_timer ! null _timer.Enabled)_timer.Stop();_timer?.Dispose();}} } --------------- 业精于勤荒于嬉 --------------- --------------- 行成于思毁于随 --------------- 优质资源分享 【总览】程序员前端、后端资源合集 【源码】程序员优质资源汇总 【博主推荐】JAVA SSM框架的后台管理系统附源码 【博主推荐】SpringBoot API接口对数据库增删改查,路由,TOKEN,WebSocket完整版(附源码) 【博主推荐】HTML制作一个美观的个人简介网页附源码 【博主推荐】html好看的个人简历网页版(附源码) 【博主推荐】html好看的个人主页(附源码) 【博主推荐】html好看的邀请函(附源码) 【博主推荐】html好看的音乐播放器(附源码) 【博主推荐】html好看的拼图小游戏(附源码) 【博主推荐】html好看的拼图验证码(附源码) 【博主推荐】html界面绘制SVG图形(附源码) 【博主推荐】html操作SVG图(附源码) 【博主推荐】html下拉框树形附好看的登录界面 【博主推荐】HTML5响应式手机WEB(附源码) 【博主推荐】大数据可视化大屏(源码下载) 【博主推荐】html引用百度地图定位闪烁弹框树形(附源码) 【博主推荐】HTML酷炫动画表白求爱界面(附源码) 关注博主 带你实现畅游前后端 加入社区 带你体验马航不孤单 神秘个人简介 带你体验不一样得介绍 酷炫邀请函 带你体验高大上得邀请 ① 提供云服务部署有自己的阿里云      ② 提供前端、后端、应用程序、H5、小程序、公众号等相关业务      如合作请联系我期待您的联系。     注本文撰写于CSDN平台,作者xcLeigh所有权归作者所有 https://blog.csdn.net/weixin_43151418如果相关下载没有跳转请查看这个地址相关链接没有跳转皆是抄袭本文转载请备注本文原地址。 亲码字不易动动小手欢迎 点赞 ➕ 收藏如 问题请留言评论博主看见后一定及时给您答复 原文地址https://blog.csdn.net/weixin_43151418/article/details/136257608防止抄袭原文地址不可删除
http://www.zqtcl.cn/news/891491/

相关文章:

  • 网站开发实现的环境自豪地采用wordpress 怎么去掉
  • ic商城网站建设网站备案关闭影响排名
  • qq官方网站进入wordpress调用文章某个分类
  • 南充网站建设设计略奥企业网站管理系统怎么修改密码
  • 网站建设里的知识360云主机可以建设网站吗
  • 创建网站代码上海网络公司查询
  • 电子商务网站建设与管理实训报告百度权重划分等级
  • 网站建设响应式是什么医院网站建设方案策划书
  • 开鲁网站seo不用下载男女做羞羞事动画网站免费
  • 做网站客户需求新乡专业做网站多少钱
  • 邢台建设银行官方网站二维码生成器app下载
  • 自己怎么做网站游戏做网站就是做app
  • 怎样做一元购网站wordpress+淘客代码
  • 网站建设发展现状贵阳有哪些做网站的公司
  • 微博上如何做网站推广蝉知和wordpress
  • 泷澄建设集团网站北京建设执业资格注册网站
  • 门户网站建设情况报告深圳龙岗房价多少钱一平方米
  • 网站建设备案是什么ps培训班
  • 深圳网站推广优化wordpress 运行速度慢
  • 谁能给个网站谢谢发布广东建设工程信息网站
  • 网站建设用户需求分析中国加盟网
  • 建设上线网站seo关键词优化软件排名
  • 郑州手工网站建设公司企业做网站好做吗
  • 苏华建设集团网站产品营销网站
  • 郑州专业做网站的网站收录最好的方法
  • 微信小程序网站建设哪家好视频教学网站开发
  • 个人网站排行网站集约化后如何建设
  • 企业网站维护wordpress特效代码
  • 建设银行网站短信错误6次wordpress新主题去版权
  • 国外 配色网站天猫店购买交易平台