Exemple #1
0
        private bool SendAsyncInternal(MeshClient client, MessageType msgType, long contentLength, Stream stream)
        {
            try
            {
                Message msg     = new Message(_Self.Ip, _Self.Port, client.Peer.Ip, client.Peer.Port, 0, false, false, msgType, contentLength, stream);
                byte[]  msgData = msg.ToBytes();
                return(client.Send(msgData).Result);
            }
            catch (Exception e)
            {
                if (_Settings.Debug)
                {
                    Console.WriteLine(Common.SerializeJson(e, true));
                }

                return(false);
            }
        }
Exemple #2
0
        private bool SendAsyncInternal(MeshClient client, MessageType msgType, byte[] data)
        {
            try
            {
                Message msg     = new Message(_Self.Ip, _Self.Port, client.Peer.Ip, client.Peer.Port, 0, false, false, msgType, data);
                byte[]  msgData = msg.ToBytes();
                return(client.Send(msgData).Result);
            }
            catch (Exception e)
            {
                if (_Settings.Debug)
                {
                    Console.WriteLine("SendAsyncInternal Exception " + Environment.NewLine + Common.SerializeJson(e, true));
                }

                return(false);
            }
        }
Exemple #3
0
        private bool SendSyncRequestInternal(MeshClient client, MessageType msgType, int timeoutMs, byte[] data, out byte[] response)
        {
            response = null;
            Message msg = new Message(_Self.Ip, _Self.Port, client.Peer.Ip, client.Peer.Port, timeoutMs, true, false, msgType, data);

            byte[] msgData = msg.ToBytes();

            try
            {
                if (!AddSyncRequest(msg.Id, timeoutMs))
                {
                    return(false);
                }
                if (!client.Send(msgData).Result)
                {
                    return(false);
                }
                return(GetSyncResponse(msg.Id, timeoutMs, out response));
            }
            catch (Exception e)
            {
                if (_Settings.Debug)
                {
                    Console.WriteLine(Common.SerializeJson(e, true));
                }

                return(false);
            }
            finally
            {
                DateTime ts;
                if (_SyncRequests.ContainsKey(msg.Id))
                {
                    _SyncRequests.TryRemove(msg.Id, out ts);
                }
            }
        }
Exemple #4
0
 private bool SendSyncResponseInternal(MeshClient client, Message msg)
 {
     byte[] msgData = msg.ToBytes();
     return(client.Send(msgData).Result);
 }