Beispiel #1
0
        /**
         * Send byte array to queue
         *
         * @param bytes    Byte array
         * @param listener Callback listener
         * @return ByteSendEntity {@link ByteSendPacket}
         */
        public ByteSendPacket Send(byte[] bytes, SendListener listener)
        {
            ByteSendPacket entity = new ByteSendPacket(bytes, listener);

            Send(entity);
            return(entity);
        }
Beispiel #2
0
        /**
         * Send file to queue
         *
         * @param file     File
         * @param listener Callback listener
         * @return FileSendEntity {@link FileSendPacket}
         */
        public FileSendPacket Send(FileInfo file, SendListener listener)
        {
            FileSendPacket entity = new FileSendPacket(file, listener);

            Send(entity);
            return(entity);
        }
        private void RunSender()
        {
            if (!active)
            {
                return;
            }

            if (shouldClose)
            {
                CleanNetworking();
                return;
            }

            if (pendingMessagesQueue.Count == 0)
            {
                return;
            }

            MessageEntry entry = pendingMessagesQueue.Dequeue();

            IMessage      message  = entry.Message;
            Action <bool> listener = entry.Listener;

            MemoryStream        output = new MemoryStream();
            NetworkBinaryWriter writer = new NetworkBinaryWriter(output);

            int messageTypeId = message.Type.TypeId;
            int contentSize   = message.Content.Length;

            byte[] content = message.Content;

            writer.WriteInt(messageTypeId);
            writer.WriteInt(contentSize);
            writer.WriteBytes(content);

            byte[] messageTypeIdArray      = BitConverter.GetBytes(messageTypeId);
            byte[] messageContentSizeArray = BitConverter.GetBytes(message.Content.Length);

            byte[] messageBytes = output.ToArray();

            output.Close();

            SocketAsyncEventArgs socketEventArgs = new SocketAsyncEventArgs();

            socketEventArgs.RemoteEndPoint = socket.RemoteEndPoint;
            socketEventArgs.UserToken      = null;

            SendListener sendListener = new SendListener(listener);

            socketEventArgs.Completed += sendListener.OnSendCompleted;
            socketEventArgs.Completed += OnMessageSendCompleted;

            socketEventArgs.SetBuffer(messageBytes, 0, messageBytes.Length);

            socket.SendAsync(socketEventArgs);
        }
Beispiel #4
0
        /**
         * Send string to queue
         *
         * @param str      String msg
         * @param listener Callback listener
         * @return StringSendEntity {@link StringSendPacket}
         */
        public StringSendPacket Send(String str, SendListener listener)
        {
            StringSendPacket entity = null;

            try
            {
                entity = new StringSendPacket(str, listener);
                Send(entity);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return(entity);
        }
Beispiel #5
0
 public SendPacket(int type, SendListener listener)
     : base(type)
 {
     mListener = listener;
 }
Beispiel #6
0
 public SendPacket(byte type, SendListener listener)
     : base(type)
 {
     Listener = listener;
 }
Beispiel #7
0
 public StringSendPacket(String entity, SendListener listener)
     : base(Encoding.UTF8.GetBytes(entity), listener)
 {
     mType = PacketType.STRING;
 }
Beispiel #8
0
 public ByteSendPacket(byte[] entity, SendListener listener) :
     base(entity, PacketType.BYTES, listener)
 {
     mLength = mEntity.Length;
 }
Beispiel #9
0
 public StringSendPacket(String entity, SendListener listener)
     : base(System.Text.Encoding.UTF8.GetBytes(entity), listener)
 {
     mType = Type.STRING;
 }
Beispiel #10
0
 public FileSendPacket(FileInfo entity, SendListener listener)
     : base(entity, PacketType.FILE, listener)
 {
     mLength = mEntity.Length;
 }
Beispiel #11
0
 /// <summary>
 /// Send string to queue
 /// </summary>
 /// <param name="str">String msg</param>
 /// <param name="listener">SendListener</param>
 /// <returns>StringSendPacket</returns>
 public StringSendPacket Send(String str, SendListener listener)
 {
     StringSendPacket entity = null;
     try
     {
         entity = new StringSendPacket(str, listener);
         Send(entity);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
     return entity;
 }
Beispiel #12
0
 /// <summary>
 /// Send byte array to queue
 /// </summary>
 /// <param name="bytes"> Byte array</param>
 /// <param name="listener">Callback listener</param>
 /// <returns>ByteSendPacket</returns>
 public ByteSendPacket Send(byte[] bytes, SendListener listener)
 {
     ByteSendPacket entity = new ByteSendPacket(bytes, listener);
     Send(entity);
     return entity;
 }
Beispiel #13
0
 /// <summary>
 /// Send file to queue
 /// </summary>
 /// <param name="file">File Info</param>
 /// <param name="listener">SendListener</param>
 /// <returns>FileSendPacket</returns>
 public FileSendPacket Send(FileInfo file, SendListener listener)
 {
     FileSendPacket entity = new FileSendPacket(file, listener);
     Send(entity);
     return entity;
 }
Beispiel #14
0
 public BaseSendPacket(T entity, int type, SendListener listener)
     : base(type, listener)
 {
     mEntity = entity;
 }
Beispiel #15
0
 public SendPacket(byte type, SendListener listener)
     : base(type)
 {
     Listener = listener;
 }
Beispiel #16
0
 public FileSendPacket(FileInfo entity, SendListener listener)
     : base(entity, Type.BYTES, listener)
 {
     mLength = (int)mEntity.Length;
 }