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;
                }
            }
        }

    }

  • 相关阅读:
    GPS坐标转化距离(短距离模型公式)
    jquery ajax 同步异步的执行
    视频播放的基本原理
    [css或js控制图片自适应]
    asp.net中js和jquery调用ashx的不同方法分享,需要的朋友可以参考一下
    [转载]在网页中插入media,RealPlayer等控件
    数组的几种排序算法的实现(3)
    -- HTML标记大全参考手册[推荐]
    数组的几种排序算法的实现(2)
    数组的几种排序算法的实现(1)
  • 原文地址:https://www.cnblogs.com/bigmouthz/p/946186.html
Copyright © 2011-2022 走看看