コード例 #1
0
ファイル: KCPSession.cs プロジェクト: zj831007/SGF
        public KcpSession(uint sid, ISessionListener listener)
        {
            LOG_TAG = "KcpSession[" + sid + "]";
            this.Log();

            onSendError    = new Signal <ISession, int>();
            onReceiveError = new Signal <ISession, int>();

            m_bufferSend   = new NetBufferWriter(new byte[0]);
            m_queueReceive = new Queue <NetMessage>();

            this.Id    = sid;
            m_listener = listener;
        }
コード例 #2
0
        public KcpGateway(int port, ISessionListener listener)
        {
            LOG_TAG = "KcpGateway<" + port + ">";
            this.Log("port:{0}", port);

            m_bufferReceive = new NetBufferWriter();

            m_port     = port;
            m_listener = listener;

            m_mapSession = new MapList <uint, KcpSession>();

            Start();
        }
コード例 #3
0
        public UdpGateway(int port, ISessionListener listener)
        {
            LOG_TAG = "UdpGateway<" + port + ">";
            this.Log("port:{0}", port);

            m_bufferReceive = new NetBufferWriter();
            m_pool          = new SocketAsyncEventArgsPool(NetDefine.PacketBufferSize, 10000);

            m_port     = port;
            m_listener = listener;

            m_mapSession = new MapList <uint, UdpSession>();

            Start();
        }
コード例 #4
0
        public void SendBytes(string value, Action <ClientSocket> errorHandle = null)
        {
            NetBufferWriter writer = new NetBufferWriter(value);

            byte[] sendData = writer.GetByte();
            try
            {
                socket.BeginSend(sendData, 0, sendData.Length, SocketFlags.None, SendCallBack, value);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                //断开连接
                Disconnect(errorHandle);
            }
        }
コード例 #5
0
ファイル: TcpConnectionBase.cs プロジェクト: zj831007/SGF
        //==========================================================
        //构造与清理
        //==========================================================
        public TcpConnectionBase(SocketAsyncEventArgsPool pool = null)
        {
            LOG_TAG = "TcpConnectionBase";

            m_pool = pool;
            if (m_pool == null)
            {
                m_pool = new SocketAsyncEventArgsPool(NetDefine.PacketBufferSize, 0);
            }

            m_queueSend  = new Queue <NetPacket>();
            m_bufferSend = new NetBufferWriter(new byte[0]);

            m_queueReceive  = new Queue <NetMessage>();
            m_bufferReceive = new NetBufferWriter(new byte[NetDefine.ReceiveBufferMinSize]);
        }
コード例 #6
0
ファイル: KCPConnection.cs プロジェクト: zj831007/SGF
        //==========================================================
        //构造函数
        //==========================================================
        public KcpConnection(int localPort)
        {
            LOG_TAG = "KcpConnection[" + 0 + "," + localPort + "]";
            this.Log("connId:{0}, localPort:{1}", 0, localPort);

            onReceive      = new Signal <NetMessage>();
            onSendError    = new Signal <IConnection, int, string>();
            onReceiveError = new Signal <IConnection, int, string>();
            onServerError  = new Signal <IConnection, int, string>();

            m_listRemoteEndPoint      = new List <IPEndPoint>();
            m_currRemoteEndPointIndex = -1;

            m_bufferSend    = new NetBufferWriter(new byte[0]);
            m_bufferReceive = new NetBufferWriter(new byte[NetDefine.ReceiveBufferMinSize]);

            m_localPort = localPort;
        }
コード例 #7
0
ファイル: UdpSession.cs プロジェクト: zj831007/SGF
        public UdpSession(uint sid, SocketAsyncEventArgsPool pool, ISessionListener listener)
        {
            LOG_TAG = "UdpSession[" + sid + "]";
            this.Log();

            onSendError    = new Signal <ISession, int>();
            onReceiveError = new Signal <ISession, int>();

            m_pool = pool;

            m_queueSend  = new Queue <NetPacket>();
            m_bufferSend = new NetBufferWriter(new byte[0]);

            m_queueReceive = new Queue <NetMessage>();

            this.Id    = sid;
            m_listener = listener;
        }
コード例 #8
0
 public void SendMsg(string msg)
 {
     if (clientSocket.Connected)
     {
         try
         {
             if (socketHandle == null)
             {
                 socketHandle     = new SocketHandle(clientSocket);
                 socketHandle.msg = msg;
             }
             NetBufferWriter netBufferWriter = new NetBufferWriter();
             byte[]          sendBuffer      = netBufferWriter.GetByte(msg);
             clientSocket.BeginSend(sendBuffer, 0, sendBuffer.Length, SocketFlags.None, SendCallBack, socketHandle);
         }
         catch (Exception e)
         {
             Debug.Log(e.Message);
         }
     }
 }
コード例 #9
0
        //==========================================================
        //构造函数
        //==========================================================
        public UdpConnection(int localPort, SocketAsyncEventArgsPool pool)
        {
            LOG_TAG = "UdpConnection[" + 0 + "," + localPort + "]";
            this.Log("connId:{0}, localPort:{1}", 0, localPort);

            onReceive      = new Signal <NetMessage>();
            onSendError    = new Signal <IConnection, int, string>();
            onReceiveError = new Signal <IConnection, int, string>();
            onServerError  = new Signal <IConnection, int, string>();

            m_listRemoteEndPoint      = new List <IPEndPoint>();
            m_currRemoteEndPointIndex = -1;

            m_pool = new SocketAsyncEventArgsPool(NetDefine.PacketBufferSize, 0);

            m_queueSend  = new Queue <NetPacket>();
            m_bufferSend = new NetBufferWriter(new byte[0]);

            m_queueReceive  = new Queue <NetMessage>();
            m_bufferReceive = new NetBufferWriter(new byte[NetDefine.ReceiveBufferMinSize]);

            m_localPort = localPort;
        }