电脑与MCGS通过ModbusTCP协议通讯示例在C#中用到的基础知识

这个内容主要是记录一下我在项目中用知识,防止忘了
链接服务器

  //System.Net;添加引用空间//System.Net.Sockets;//创建个一Socket对象,使用IPv4地址,使用数据流,使用TCP协议Socket   socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//声明IPAddress对象用来存储IP地址//Parse方法用于将字符串转换成其他类型IPAddress ip = IPAddress.Parse("192.168.2.2");//获取一个网络终结点,有IP地址和端口号组成,端口号就是触屏设置的端口//Convert.ToInt32()方法用于将字符串转换成int型数据IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32("1200"));//把网络终结点添加到Socket类中,这样就链接上了//Connect方法用于链接服务器socketSend.Connect(point);//Send的方法用于将字节数组发送出去socketSend.Send(buffer3);//Receive方法用于接收字节数组,并返回字节数组的大小int r = socketSend.Receive(buffer)

创建线程

               // 创建一个线程,参数是一个方法 Thread  th = new Thread(Recive);//把线程设置成后台运行th.IsBackground = true;//启动线程,可以传入参数,但在声明方法时的参数列表要是object型th.Start();//终止线程th.Abort();

因为要跨线程访问控件,所以需要取消跨线程检测

        private void Form1_Load(object sender, EventArgs e){//不做跨线程检测Control.CheckForIllegalCrossThreadCalls = false;}
//字节数组拷贝,把buffer中的数据从下标0开始拷贝到buffer3中,从下标0开始,长度位buffer.LengthBuffer.BlockCopy(buffer, 0, buffer3, 0, buffer.Length);//把buffer1中的内容拷贝到buffer3中Buffer.BlockCopy(buffer1, 0, buffer3, buffer.Length * sizeof(byte), buffer1.Length);//把字符串转换成字节数组byte[] buffer1 = Encoding.ASCII.GetBytes(str);//把buffer字节数组从0开始,到r长的数据转换成字符串string a = Encoding.ASCII.GetString(buffer, 0, r);//对字符串进行删除,从零到17个字节a = a.Remove(0,17);//对 buffer字节数组进行截取,从第9个开始,截取4个,返回一个长度为4的字节数组buffer.Skip(9).Take(4).ToArray()//将16位数转换成字节数组byte[] buffer1 = BitConverter.GetBytes(Convert.ToUInt16(textBox1.Text));
``


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部