Ejemplo n.º 1
0
 private void SendCallback(IAsyncResult _AsyncResult)
 {
     try
     {
         int bytesSent = m_Socket.EndSend(_AsyncResult);
         if (bytesSent == m_CurrentOutgoingMessage._GetBufferSize())
         {
             //Packet sent successfully
             if (m_Messages.TryDequeue(out m_CurrentOutgoingMessage) == true)
             {
                 m_Socket.BeginSend(m_CurrentOutgoingMessage._GetBuffer(), 0, m_CurrentOutgoingMessage._GetBufferSize()
                                    , SocketFlags.None, new AsyncCallback(SendCallback), this);
             }
             else
             {
                 m_CurrentOutgoingMessage = null;
                 m_CurrentlySending       = false;
             }
         }
         else
         {
             m_Exceptions.Enqueue(new Exception("Not all bytes were sent! only " + bytesSent + " out of " + m_CurrentOutgoingMessage._GetBufferSize()));
             m_CurrentOutgoingMessage = null;
             m_CurrentlySending       = false;
         }
     }
     catch (Exception ex)
     {
         m_Exceptions.Enqueue(ex);
         m_CurrentlySending = false;
     }
 }
Ejemplo n.º 2
0
        public void SendMessage(NetworkOutgoingMessage _Message)
        {
            var client = m_Clients.FirstOrDefault((_Value) => _Value.Socket == _Message._GetSocket());

            if (client == null)
            {
                throw new Exception("Client was not Connected");
            }

            client.SendMessage(_Message);
        }
Ejemplo n.º 3
0
 private void _StartSending()
 {
     if (IsConnected())
     {
         if (m_CurrentlySending == false)
         {
             if (m_OutgoingMessages.TryDequeue(out m_CurrentOutgoingMessage) == true)
             {
                 m_CurrentlySending = true;
                 m_Socket.BeginSend(m_CurrentOutgoingMessage._GetBuffer(), 0, m_CurrentOutgoingMessage._GetBufferSize()
                                    , SocketFlags.None, new AsyncCallback(SendCallback), this);
             }
             else
             {
                 m_CurrentOutgoingMessage = null;
             }
         }
     }
 }
Ejemplo n.º 4
0
 internal void _StartSending()
 {
     try
     {
         if (m_CurrentlySending == false)
         {
             if (m_Messages.TryDequeue(out m_CurrentOutgoingMessage) == true)
             {
                 m_CurrentlySending = true;
                 m_Socket.BeginSend(m_CurrentOutgoingMessage._GetBuffer(), 0, m_CurrentOutgoingMessage._GetBufferSize()
                                    , SocketFlags.None, new AsyncCallback(SendCallback), this);
             }
             else
             {
                 m_CurrentOutgoingMessage = null;
             }
         }
     }
     catch (Exception ex)
     {
         m_Exceptions.Enqueue(ex);
         m_CurrentlySending = false;
     }
 }
Ejemplo n.º 5
0
 internal void SendMessage(NetworkOutgoingMessage _Message)
 {
     _Message._CompilePacket();
     m_Messages.Enqueue(_Message);
     _StartSending();
 }
Ejemplo n.º 6
0
        internal NetworkOutgoingMessage _CreateOutgoingMessage(NetworkServerClient _ServerClient, int _InitialSize = -1)
        {
            NetworkOutgoingMessage newMessage = new NetworkOutgoingMessage(_ServerClient.Socket, NetworkMessageType.RawData, _InitialSize);

            return(newMessage);
        }
Ejemplo n.º 7
0
        public NetworkOutgoingMessage CreateMessage(int _InitialSize = -1)
        {
            NetworkOutgoingMessage newMessage = new NetworkOutgoingMessage(m_Socket, NetworkMessageType.RawData, _InitialSize);

            return(newMessage);
        }