Esempio n. 1
0
        /// <summary>
        /// 新建连接
        /// </summary>
        /// <param name="ip">连接的服务器IP</param>
        /// <param name="port">连接的端口号</param>
        /// <param name="connEvent">连接完成后回调</param>
        /// <param name="disconnEvent">断开连接发生时回调</param>
        /// <param name="recvEvent">接收到消息包时回调</param>
        public void Connect(string ip, int port, OnConnectEvent connEvent, OnDisconnectEvent disconnEvent, OnRecvEvent recvEvent)
        {
            if (mIsConnected)
            {
                Disconnect("reconnect");
            }

            mOnConnect     = connEvent;
            mOnDisConnect  = disconnEvent;
            mOnRecvPackage = recvEvent;
            mIP            = ip;
            mPort          = port;

            mTcpClient = new TcpClient
            {
                NoDelay           = true,
                ReceiveBufferSize = mRecvBuffSize,
                SendBufferSize    = mSendBuffSize
            };

            mIsConnected = false;

            try
            {
                mTcpClient.BeginConnect(IPAddress.Parse(ip), port, new AsyncCallback(OnConnectCallback), mTcpClient);

                Invoke("ConnectTimeOutCheck", 3);
            }
            catch (Exception ex)
            {
                if (IsInvoking("ConnectTimeOutCheck"))
                {
                    CancelInvoke("ConnectTimeOutCheck");
                }

                if (mOnConnect != null)
                {
                    mOnConnect.Invoke(false, ex.ToString());
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 移除一个接受数据回调
 /// </summary>
 /// <param name="recvEvent">要移除的回调函数</param>
 public void RemoveRecvEvent(OnRecvEvent recvEvent)
 {
     mOnRecvPackage -= recvEvent;
 }
Esempio n. 3
0
 /// <summary>
 /// 添加一个新的接收数据回调
 /// </summary>
 /// <param name="recvEvent">要添加的回调函数</param>
 public void AddRecvEvent(OnRecvEvent recvEvent)
 {
     mOnRecvPackage += recvEvent;
 }