コード例 #1
0
        private void Update(byte[] bytes, byte dataChannel)
        {
            try
            {
                bool dontReport = false;
                if (dataChannel < 251)
                {
                    // Try to execute command and send reply to caller
                    if (bytes.Length < 65535)
                    {
                        TryExecuteCommand(TcpComm.Utilities.BytesToString(bytes));
                    }
                }
                else if (dataChannel == 255)
                {
                    String message = TcpComm.Utilities.BytesToString(bytes);
                    String tmp     = string.Empty;

                    // Receiving file in progress
                    if (message.Length > 15)
                    {
                        tmp = message.Substring(0, 15);
                        if (tmp == "Receiving file:")
                        {
                            this.EventLog.WriteEntry(message + " " + _client.GetIncomingFileName());
                            dontReport = true;
                        }
                    }

                    // Sending file in progress
                    if (message.Length > 13)
                    {
                        tmp = message.Substring(0, 13);
                        if (tmp == "Sending file:")
                        {
                            this.EventLog.WriteEntry(message + " " + _client.GetOutgoingFileName());
                            dontReport = true;
                        }
                    }

                    // Completed file receiving
                    if (message == "->Done")
                    {
                        string errMsg = "";
                        _client.SendText(_client.GetMachineID() + ":FILE_RECEIVED", errMsg: ref errMsg);
                        this.EventLog.WriteEntry(message);
                        dontReport = true;
                    }

                    //Completed file sending
                    if (message == "<-Done")
                    {
                        this.EventLog.WriteEntry(message);
                        dontReport = true;
                    }

                    // Aborted file receiving
                    if (message == "->Aborted")
                    {
                        string errMsg = "";
                        _client.SendText(_client.GetMachineID() + ":FILE_RECEIVING_ABORTED", errMsg: ref errMsg);
                        this.EventLog.WriteEntry(message);
                        dontReport = true;
                    }

                    // Aborted file sending
                    if (message == "<-Aborted")
                    {
                        this.EventLog.WriteEntry(message);
                        dontReport = true;
                    }

                    // UBS = User Bytes Sent on channel :???
                    if (message.Length > 4)
                    {
                        tmp = message.Substring(0, 4);
                        if (tmp == "UBS:")
                        {
                            this.EventLog.WriteEntry(message);
                            dontReport = true;
                        }
                    }

                    // An error occured
                    if (message.Length > 4)
                    {
                        tmp = message.Substring(0, 5);
                        if (tmp == "ERR: ")
                        {
                            this.EventLog.WriteEntry("Wystąpił błąd: " + message);
                            dontReport = true;
                        }
                    }

                    // Server has disconnected (attempt to reconnect)
                    if (message.Equals("Disconnected."))
                    {
                        _isConnected = false;
                        dontReport   = true;
                    }

                    // Unknown message
                    if (!dontReport)
                    {
                        this.EventLog.WriteEntry("Nieznany typ wiadomości: " + message);
                    }
                }
            }
            catch
            {
                // ignored
            }
        }