Exemple #1
0
 public CSocket()
 {
     mSocketSink = null;
     mSocket     = new CustomSocket
     {
         SuccessCallback     = onConnected,
         DisconnectCallback  = onDisconnected,
         DataRecivedCallback = onMessageReceived,
         ExceptionCallback   = onExceptionCaught
     };
 }
Exemple #2
0
        //关闭
        public void Close()
        {
            // UnityEngine.Debug.LogWarningFormat("Close UDP socket:");
            Disconnect();

            //释放线程
            if (null != m_ThreadSend)
            {
                m_ThreadSend.Abort();
                m_ThreadSend = null;
            }

            //释放发包内存池
            if (null != m_oSendDataSwap)
            {
                m_oSendDataSwap.Release();
                m_oSendDataSwap = null;
            }

            //释放udp客户端
            if (null != mUdpClient)
            {
                mUdpClient.Close();
                mUdpClient = null;
            }

            //释放发送队列
            if (null != m_QueueToSend)
            {
                m_QueueToSend.Clear();
                m_QueueToSend = null;
            }

            //释放接收队列
            if (null != mRecvQueue)
            {
                mRecvQueue.Clear();
                mRecvQueue = null;
            }

            //重置状态
            reset_state();

            //清空缓存
            packbuffer      = null;
            recievebuffer   = null;
            mHandshakePack  = null;
            mHeartPack      = null;
            mDisconnectPack = null;

            //清空回调
            m_socketSink = null;
        }
Exemple #3
0
        //关闭
        public void Close()
        {
            // UnityEngine.Debug.LogWarningFormat("Close socket:");

            Disconnect();

            lock (m_QueueToSend.SyncRoot)
            {
                m_QueueToSend.Clear();
                Monitor.Pulse(m_QueueToSend.SyncRoot);
            }


            if (m_ThreadSend != null)
            {
                m_ThreadSend.Abort();
                m_ThreadSend = null;
            }

            if (m_ThreadReceive != null)
            {
                m_ThreadReceive.Abort();
                m_ThreadReceive = null;
            }

            if (m_Connection != null)
            {
                try
                {
                    m_Connection.Close();
                }
                catch (SocketException e)
                {
                    UnityEngine.Debug.LogErrorFormat("Close error:{0}", e.ToString());
                }

                m_Connection = null;
            }

            m_socketSink     = null;
            m_DecompressData = null;
        }
Exemple #4
0
 public void setSocketSink(ISocketSink pISocketSink)
 {
     mSocketSink = pISocketSink;
 }
Exemple #5
0
 //设置上层回调
 public void SetSink(ISocketSink sink)
 {
     m_socketSink = sink;
 }