zoukankan      html  css  js  c++  java
  • Common.TcpLib _Bgz_ConnectionState.cs

    using System;
    using System.Text;
    using System.Collections;
    using System.Collections.Generic;
    using System.Net;
    using System.Net.Sockets;
    using System.Threading;
    using System.Runtime.InteropServices;
    using System.IO;

    namespace Common.TcpLib
    {

        public class _Bgz_ConnectionState
        {
            #region var
            public Socket _conn = null;    //Socket
            public byte[] _buffer;  //缓冲区
            public int _count = 0;  //当前接收次数
            public bool _getonceall = false; //是否一次性得到接收的内容

            public Stream _dataStream = new MemoryStream();//数据流

            #endregion

            #region ctor
            public _Bgz_ConnectionState()
            {
                Init();
            }

            public _Bgz_ConnectionState(Socket socket)
            {
                _buffer = new byte[0];
                _getonceall = false;
                _count = 0;
                _dataStream = new MemoryStream();
                _conn = socket;
            }

            #endregion

            #region property

            public EndPoint RemoteEndPoint
            {
                get { return _conn.RemoteEndPoint; }
            }

            public EndPoint LocalEndPoint
            {
                get { return _conn.LocalEndPoint; }
            }

            public string StrRemoteEndPoint
            {
                get
                {
                    IPEndPoint info = (IPEndPoint)_conn.RemoteEndPoint;
                    return info.Address.ToString() + ":" + info.Port.ToString();
                }
            }

            public string StrLocalEndPoint
            {
                get
                {
                    IPEndPoint info = (IPEndPoint)_conn.LocalEndPoint;
                    return info.Address.ToString() + ":" + info.Port.ToString();
                }
            }

            public int AvailableData
            {
                get { return _conn.Available; }
            }

            public bool Connected
            {
                get { return _conn.Connected; }
            }

            #endregion

            public void Init()
            {
                _conn = null;
                _buffer = new byte[0];
                _getonceall = false;
                _count = 0;
                _dataStream = new MemoryStream();
            }

            public int Read(byte[] buffer, int offset, int count)
            {
                try
                {
                    if (_conn.Available > 0)
                        return _conn.Receive(buffer, offset, count, SocketFlags.None);
                    else return 0;
                }
                catch
                {
                    return 0;
                }
            }

            public bool Write(byte[] buffer, int offset, int count)
            {
                try
                {
                    _conn.Send(buffer, offset, count, SocketFlags.None);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
        }

    }

  • 相关阅读:
    Oracle数据库中。varchar 和 varchar2的区别
    gvim 编辑器初学
    鼠标事件以及clientX、offsetX、screenX、pageX、x的区别
    清除浮动的5种方法
    按钮的单双击事件
    webstrom中的快捷键
    限制 input 输入框只能输入纯数字
    控制<标签>不可被点击
    way.js
    ECharts 折线图and柱状图
  • 原文地址:https://www.cnblogs.com/bigmouthz/p/946186.html
Copyright © 2011-2022 走看看