zoukankan      html  css  js  c++  java
  • 套接字的初始化和发送、收取数据

    class ModBusTcp : IDisposable
    {
    /// <summary>
    /// 服务端IP地址 例:192.168.1.1
    /// </summary>
    public string IP = "192.168.1.1";
    /// <summary>
    /// 服务端端口号 例:ModBus默认502
    /// </summary>
    public int Port = 502;
    /// <summary>
    /// 超时时间
    /// </summary>
    public int TimeOut = 3;
    //定义TCP套接字实例
    private Socket socket = null;
    //建立套接字连接
    public void Connect()
    {
    //定义套接字类型和和协议
    this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    //套接字超时设置
    this.socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout,TimeOut);
    //实例化网络端点
    IPEndPoint ip = new IPEndPoint(IPAddress.Parse(IP), Port);
    //建立连接
    this.socket.Connect(ip);
    }
    //套接字以字节数组形式发送数据
    public void Send(byte[] values)
    {
    this.socket.Send(values);
    }
    //套接字以字节数组形式接收数据
    public byte[] Receive()
    {
    //实例化接收数组
    byte[] receiveData = new byte[255];
    //接收数据,并返回接收字节数
    int length = this.socket.Receive(receiveData);
    byte[] result = new byte[length];//定义接收数据长度的数组
    //复制,并返回接收数据
    Array.Copy(receiveData, 0, result, 0, length);
    // Dispose();
    return result;
    }
    //是否已经建立连接
    public bool isConn()
    {
    bool boolflage = false;
    if (socket.Connected) boolflage = true;
    return boolflage;
    }

    //销毁套接字,释放资源
    public void Dispose()
    {
    //如果套接字连接连通,先禁止其收发,然后关闭
    if (socket.Connected)
    {
    socket.Shutdown(SocketShutdown.Both);
    socket.Close();
    }
    //回收套接字
    if (socket != null)
    {
    socket = null;
    }
    }
    }

  • 相关阅读:
    JAVA课程作业01
    《大道至简》第二章读后感
    《大道至简》第一章读后感
    制作Linux镜像,将腾讯云服务器系统制成镜像
    postman数据驱动
    Navicat Premium 连接Oracle数据库报错 instant Client LIght : unsupported server charcter ser ZHS16GBK
    查看python位数
    AutoItLibrary安装过程中遇到的坑
    hyrobot使用
    有这样一道智力题:“某商店规定:三个空汽水瓶
  • 原文地址:https://www.cnblogs.com/qiulang/p/3325869.html
Copyright © 2011-2022 走看看