示例#1
0
文件: Server.cs 项目: SIRprise/GNI
        public override void OnDataReceived(GNIData data, uint source)
        {
            switch (data.keyString)
            {
            case "message":
                Message("[" + DateTime.Now.ToString() + "] <" + GetClient(source).name + "> " + data.valueString);
                break;

            case "nick":
                string oldname = "";
                for (int i = 0; i < clients.Count; i++)
                {
                    if (clients[i].clientID == source)
                    {
                        GNIClientInformation client = clients[i];
                        oldname     = client.name;
                        client.name = data.valueString;
                        clients[i]  = client;
                    }
                }
                if (oldname != "")
                {
                    SMessage(oldname + " has changed nick to " + data.valueString);
                }
                break;
            }
        }
示例#2
0
        public override void OnDataReceived(GNIData data, uint source = 0)
        {
            Console.WriteLine("Received signal: " + data.keyString);
            switch (data.keyString)
            {
            case "filename":
                this.filenames[source] = data.valueString;
                Console.WriteLine("Filename for " + source + " set to " + data.valueString);
                break;

            case "filedata":
                string filename = filenames[source];
                Console.WriteLine("Receiving file " + filename + " from " + source);
                try
                {
                    BinaryWriter writer = new BinaryWriter(new FileStream(filename, FileMode.Create));
                    writer.Write(data.valueBytes);
                    writer.Close();
                    SendSignal(GetClient(source), new GNIData().SetData("finish", 0));
                    Console.WriteLine("Succesfully received file " + filename + " from " + source);
                }
                catch (Exception ex) { Console.WriteLine("Error while writing " + filename + ": " + ex.Message); }
                break;
            }
        }
示例#3
0
文件: Server.cs 项目: SIRprise/GNI
        public void SMessage(string s)
        {
            GNIData data = new GNIData("systemmessage", s);

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine(s);
            BroadcastSignal(data);
        }
示例#4
0
文件: Server.cs 项目: SIRprise/GNI
        public void Message(string s)
        {
            GNIData data = new GNIData("chatmessage", s);

            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(s);
            BroadcastSignal(data);
        }
示例#5
0
 public override void OnDataReceived(GNIData data, uint source = 0)
 {
     switch (data.keyString)
     {
     case "finish":
         transferring = false;
         break;
     }
 }
示例#6
0
        public override void OnDataReceived(GNIData data, uint source = 0)
        {
            switch (data.keyString)
            {
            case "chatmessage":
                Message(data.valueString);
                break;

            case "systemmessage":
                SMessage(data.valueString);
                break;
            }
        }
示例#7
0
 public void SendMessage(string message)
 {
     if (message.StartsWith("/"))
     {
         if (message.StartsWith("/nick"))
         {
             string[] split = message.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
             if (split.Length > 1)
             {
                 GNIData data = new GNIData("nick", split[1]);
                 SendSignal(tcpClient, data);
             }
         }
     }
     else
     {
         GNIData data = new GNIData("message", message);
         SendSignal(tcpClient, data);
     }
 }
示例#8
0
 public override void OnDataReceived(GNIData data, uint source = 0)
 {
     //base.DataReceived(data);
     Console.WriteLine(data.valueString);
 }