Exemple #1
0
        public void server1()
        {
            //dodaj figuru za menjanje ovde
            server.Delimiter              = 0x13;
            server.DelimiterDataReceived += (sender, msg) =>
            {
                // Console.WriteLine(msg.MessageString);

                string   k   = msg.MessageString;
                string[] niz = k.Split(',');
                primljeno1 = niz[5] + "," + niz[6] + "," + niz[1] + "," + niz[2];
                Console.WriteLine(primljeno1);
                if (primljeno1 == "0,0,0,0")
                {
                    server.Broadcast(partija);
                }
                Sah sahhhh = (Sah)Application.OpenForms["Sah"];
                sahhhh.pasvaluec = 1;
                Figura.Instance().zameni(int.Parse(niz[5]), int.Parse(niz[6]), int.Parse(niz[1]), int.Parse(niz[2]));
                if (niz[7] == "sahmat")
                {
                    sahmat = "sahmat";
                    //  Kraj kr = new Kraj();
                    // kr.Show();
                }
            };
            clientsConnected = server.ConnectedClientsCount;
            //Console.WriteLine("number of connected clients is: " + clientsConnected);
            //var listeningIps = server.GetListeningIPs();
            //Console.WriteLine("number of connected clients is: " + listeningIps);
            //var listeningV4Ips = server.GetListeningIPs().Where(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
            //Console.WriteLine("number of connected clients is: " + listeningV4Ips);
        }
Exemple #2
0
        private void ReadThread()
        {
            UserConfig.ReadAppSettings("Crane1Port", out string Port);
            server1 = new SimpleTcpServer().Start(int.Parse(Port));
            server1.DataReceived += (sender, msg) =>
            {
                // msg.Reply(msg.MessageString);
                server1RecData = msg.MessageString;
                recData.Data   = msg.MessageString;
                this.BeginInvoke(new Action(() =>
                {
                    //如果起始和终止符不是<>,那么返回
                    if (msg.MessageString.Substring(0, 1) != "<")
                    {
                        return;
                    }
                    if (msg.MessageString.Substring(msg.MessageString.Length - 1, 1) != ">")
                    {
                        return;
                    }
                    IdleTimeout = 0;
                    //如果第二个字符是1,那么要返回ACK,刚连上时,Cranebox会先发送CSR
                    if (msg.MessageString.Substring(1, 1) == "1")
                    {
                        Telegram.ACK(server1RecData, out server1SendData);
                        server1.Broadcast(server1SendData);
                        Log.Information(server1SendData);
                        listBox1.Text += server1SendData + "\r\n";
                        // sendData.Data = server1SendData;//触发委托监视事件,异步委托数据有可能会变化
                    }



                    //如果是DUM,那么要返回DUA ,进行心跳
                    if (msg.MessageString.Substring(18, 3) == "DUM")
                    {
                        Telegram.DUA(server1RecData, out server1SendData);
                        server1.Broadcast(server1SendData);
                        //  msg.Reply(server1SendData);
                        Log.Information(server1SendData);
                        listBox1.Text += server1SendData + "\r\n";
                    }

                    //如果是NCK1 ,那么要发送SYN复位
                    //如果是NCK2,那么要等待Buffer timeout 时间重新发
                }));
            };
            server1.ClientConnected += (sender, msg) =>
            {
                pictureBox1.Image = Image.FromFile(@"green.png");
            };
            server1.ClientDisconnected += (sender, msg) =>
            {
                pictureBox1.Image = Image.FromFile(@"red.png");
            };
        }
Exemple #3
0
        private static void Main()
        {
            HttpClient httpClient = new HttpClient();

            SimpleTcpServer tcpServer = new SimpleTcpServer().Start(Constants.TcpPort);

            tcpServer.DataReceived += async(sender, e) =>
            {
                MessageTransmission messageTransmission = JsonConvert.DeserializeObject <MessageTransmission>(e.MessageString);

                string messageString = JsonConvert.SerializeObject(messageTransmission.Message);

                tcpServer.Broadcast(messageString);

                ByteArrayContent byteArrayContent = new ByteArrayContent(Encoding.UTF8.GetBytes(messageString));
                byteArrayContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post, $"{Constants.HttpServerAddress}/messages/post")
                {
                    Content = byteArrayContent,
                    Headers =
                    {
                        { "Authorization", messageTransmission.Authorization }
                    }
                };

                await httpClient.SendAsync(message);

                WriteLine("Message: {0}", messageTransmission.Message.Content);
            };

            ReadKey();
        }
Exemple #4
0
 private void baslat_durdur_button_Click(object sender, EventArgs e)
 {
     if (server.IsStarted)
     {
         ciktilar.Text = "Server durduruluyor.";
         //bagliclientsayisi.Enabled = false;
         server.StringEncoder = Encoding.UTF8;
         server.Broadcast("Sunucu kapatıldığı için bütün maçlar iptal edilmiştir.");
         server.Stop();
         baslat_durdur_button.Text = "Başlat";
         ciktilar.Text             = "Server durduruldu.";
     }
     else
     {
         ciktilar.Text = "www.urhoba.net \n" +
                         "Server başlatılıyor.. \n";
         try
         {
             // bagliclientsayisi.Enabled = true;
             System.Net.IPAddress ip = System.Net.IPAddress.Parse(hostIP.Text);
             server.Start(ip, Convert.ToInt32(hostPort.Text));
             baslat_durdur_button.Text = "Durdur";
             ciktilar.Text            += "Server başlatıldı.";
         }
         catch (Exception)
         {
             ciktilar.Text += "Server başlatılırken bir hata ile karşılaştık.";
         }
     }
 }
Exemple #5
0
 private void Server_DataReceived(object sender, SimpleTCP.Message e)
 {
     server1.Broadcast(e.MessageString);
     txtstatus.Dispatcher.Invoke((Action) delegate()
     {
         txtstatus.Text += e.MessageString;
     });
 }
Exemple #6
0
 public void DataRecieved(object sender, SimpleTCP.Message m)
 {
     if (!CheckAccess())
     {
         Dispatcher.Invoke(new Action <Object, Message>(DataRecieved), new object[] { sender, m });
         return;
     }
     OutputBox.Text += "[Client] " + m.MessageString + "\n";
     server.Broadcast("[Client] " + m.MessageString);
 }
        public void Emit(string type, string data = "{}")
        {
            data = data.Replace("'", "\"");
            string json = "{ \"type\": \"" + type + "\", \"data\": " + data + " }\f";

            //Console.WriteLine(json);
            if (server != null && server.IsStarted)
            {
                server.Broadcast(json);
            }
        }
Exemple #8
0
        public void buildChannelMessageInfo()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("CHI");
            sb.Append(";");
            sb.Append(whichChannel);
            sb.Append(";");
            sb.Append(channelList[whichChannel].name);
            sb.Append(";");
            sb.Append(channelList[whichChannel].userList.Count);
            sb.Append(";");
            sb.Append(channelList[whichChannel].description);
            foreach (User u in channelList[whichChannel].userList)
            {
                sb.Append(";");
                sb.Append(u.name);
            }

            server.Broadcast(sb.ToString());
        }
Exemple #9
0
        private void button1_Click(object sender, EventArgs e)
        {
            Control_Timer_Tick(sender, e);
            Control_Timer.Enabled = true;
            button1.Text          = "Started";

            System.Net.IPAddress ip = System.Net.IPAddress.Parse("192.168.43.239");
            server.Start(ip, Convert.ToInt32("7070"));
            label_tcp.Text = "server started";
            server.Broadcast("1");
            //send[0] = 12;
            //serialPort1.Write(send, 0, 1);
        }
Exemple #10
0
        private void timer1_Tick_1(object sender, EventArgs e)
        {
            timer_clk++;
            if (ERROR == false)
            {
                int tmp;
                Int32.TryParse(Interval_txt.Text, out tmp);
                timer1.Interval = tmp;
                switch (clock)
                {
                case 1: server.Broadcast("ok1"); break;

                case 2: server.Broadcast("ok2"); break;

                case 3: server.Broadcast("ok3"); break;
                }
                clock++;
                if (clock == 4)
                {
                    clock = 1;
                }
                ERROR     = true;
                timer_clk = 0;
                if (Anchor_measurement.Checked == true)
                {
                    clock = 0;
                }
            }
            if (timer_clk * timer1.Interval >= Convert.ToInt32(Error_Period.Text))
            {
                ERROR = false;
                Reset_DWM(sender);
                // timer1.Interval = 500;
                timer_clk = 0;
            }
        }
Exemple #11
0
        public static void Start()
        {
            try
            {
                server.StringEncoder = Encoding.UTF8;
                server.Start(23333);
                Common.CqApi.AddLoger(Sdk.Cqp.Enum.LogerLevel.Info, "tcp server",
                                      "tcp server started!");
                server.DataReceived += (sender, msg) => {
                    LuaEnv.RunLua(
                        $"message=[[{msg.MessageString.Replace("]", "] ")}]] ",
                        "envent/ReceiveTcp.lua");
                };
            }
            catch (Exception e)
            {
                Common.CqApi.AddLoger(Sdk.Cqp.Enum.LogerLevel.Error, "tcp server",
                                      "tcp server start failed!\r\n" + e.ToString());
            }

            //消息发送队列
            Task.Run(() =>
            {
                try
                {
                    while (true)
                    {
                        while (toSend.Count > 0)
                        {
                            string temp;
                            toSend.TryTake(out temp);
                            server.Broadcast(temp);
                            Task.Delay(packTime).Wait();
                        }
                        Task.Delay(200).Wait();//等等,防止卡死
                    }
                }
                catch (Exception e)
                {
                    Common.CqApi.AddLoger(Sdk.Cqp.Enum.LogerLevel.Fatal, "tcp server",
                                          "tcp server loop failed!\r\n" + e.Message);
                }
            });
        }
Exemple #12
0
 public static void SendList()
 {
     System.Timers.Timer timer = new System.Timers.Timer();
     timer.Enabled  = true;
     timer.Interval = 1000;//1s
     timer.Elapsed += new System.Timers.ElapsedEventHandler((s, e) =>
     {
         try
         {
             if (toSend.Count > 0)
             {
                 string temp;
                 toSend.TryTake(out temp);
                 server.Broadcast(temp);
             }
         }
         catch (Exception ee)
         {
             Common.AppData.CQLog.Error("lua插件", $"tcp队列报错:{ee.Message}");
         }
     });
     timer.Start();
 }
Exemple #13
0
        private void TaskThread()
        {
            int step = 1;//arq

            server1.DataReceived += (sender, msg) =>
            {
                // msg.Reply(msg.MessageString);

                this.BeginInvoke(new Action(() =>
                {
                    //如果起始和终止符不是<>,那么返回
                    if (msg.MessageString.Substring(18, 3) == "CSR")
                    {
                        if (msg.MessageString.Substring(48, 3) != "000")//如果返回错误
                        {
                            string[] craneData = new string[17];
                            craneData[0]       = "Crane1";
                            craneData[1]       = SequenceNumber;
                            craneData[2]       = (int.Parse(AssignmentID) - 1).ToString("00000000");
                            Telegram.DER1(craneData, out server1SendData);
                            server1.Broadcast(server1SendData);
                            Log.Information(server1SendData);
                            listBox1.Text += server1SendData + "\r\n";
                            // sendData.Data = server1SendData;//触发委托监视事件
                            changeNumber(ref SequenceNumber, ref AssignmentID);
                        }
                        // if (!Server1SendData.Contains("ARQ")) return;
                        else
                        {
                            step += 1;
                        }
                    }
                    if (msg.MessageString.Substring(18, 3) == "NCK")
                    {
                        if (msg.MessageString.Substring(21, 1) == "1")
                        {
                            SequenceNumber = "0001";
                            Telegram.SYN(server1RecData, out server1SendData);
                            server1.Broadcast(server1SendData);
                            Log.Information(server1SendData);
                            listBox1.Text += server1SendData + "\r\n";
                        }
                        if (msg.MessageString.Substring(21, 1) == "2")
                        {
                            BufferFullTime.Start();
                        }
                    }

                    if (msg.MessageString.Substring(18, 3) == "ACP")
                    {
                        if (msg.MessageString.Substring(51, 3) != "000")
                        {
                            string[] craneData = new string[17];
                            craneData[0]       = "Crane1";
                            craneData[1]       = SequenceNumber;
                            Telegram.STA1(craneData, out server1SendData);
                            server1.Broadcast(server1SendData);
                            Log.Information(server1SendData);
                            listBox1.Text += server1SendData + "\r\n";
                            changeNumber(ref SequenceNumber, ref AssignmentID);
                        }
                        else
                        {
                            listBox1.Text += "任务已完成!" + "\r\n";
                        }
                    }
                }));
            };
        }
Exemple #14
0
        private void Server_DataReceived(object sender, SimpleTCP.Message e)
        {
            string listToBeSent = "list:All:";

            if (e.MessageString.Contains("just joined"))
            {
                String user   = e.MessageString.Substring(25, e.MessageString.Length - 25 - 14);
                Socket socket = e.TcpClient.Client;
                listOfClients.Add(new ClientDetails(user, socket));

                server.Broadcast(e.MessageString);
                txtStatus.Dispatcher.Invoke((Action) delegate()
                {
                    txtStatus.Text += e.MessageString;
                });
            }

            if (e.MessageString.Contains("list"))
            {
                foreach (ClientDetails username in listOfClients)
                {
                    listToBeSent += username.getUsername() + ":";
                }
                List <byte> vs = new List <byte>();
                vs.AddRange(Encoding.UTF8.GetBytes(listToBeSent));
                e.TcpClient.Client.Send(vs.ToArray());
            }

            if (e.MessageString.Contains("#"))
            {
                if (e.MessageString.Substring(0, 3).Equals("All"))
                {
                    if (!e.MessageString.Substring(4, 4).Equals("File"))
                    {
                        string toAll = "[All] " + e.MessageString.Substring(4, e.MessageString.Length - 4) + "\n";
                        server.Broadcast(toAll);
                        txtStatus.Dispatcher.Invoke((Action) delegate()
                        {
                            txtStatus.Text += toAll;
                        });
                    }
                    else
                    {
                        System.Windows.MessageBox.Show("Cannot send a file to everyone!");
                    }
                }
                else
                {
                    int posOfDel = e.MessageString.IndexOf('#');

                    string user = e.MessageString.Substring(0, posOfDel);
                    if (!e.MessageString.Substring(user.Length + 1, 4).Equals("File"))
                    {
                        string msg       = "[Private] " + e.MessageString.Substring(posOfDel + 1, e.MessageString.Length - posOfDel - 1) + "\n";
                        Socket replySock = findSocket(user, listOfClients);
                        if (replySock != null)
                        {
                            List <byte> vs = new List <byte>();
                            vs.AddRange(Encoding.UTF8.GetBytes(msg));
                            replySock.Send(vs.ToArray());
                            e.TcpClient.Client.Send(vs.ToArray());
                        }
                        else
                        {
                            System.Windows.MessageBox.Show(user + " has logged out!");
                        }
                    }
                    else
                    {
                        string bigName   = e.MessageString.Substring(user.Length + 6, e.MessageString.Length - user.Length - 6);
                        int    posOfStar = bigName.IndexOf('#');
                        string fileName  = bigName.Substring(0, posOfStar);

                        byte[] array = new byte[(e.MessageString.Length - user.Length - fileName.Length - 7)];
                        Buffer.BlockCopy(e.Data, user.Length + fileName.Length + 7, array, 0, array.Length);
                        File.WriteAllBytes(currentPath + "\\" + user + "\\" + fileName, array);
                        String srcUsername = findUsername(e.TcpClient.Client, listOfClients);
                        Socket fromSock    = findSocket(user, listOfClients);
                        if (fromSock != null)
                        {
                            List <byte> vs = new List <byte>();
                            vs.AddRange(Encoding.UTF8.GetBytes("[Private] " + srcUsername + ": Sent file " + fileName + "\n"));
                            List <byte> vs2 = new List <byte>();
                            vs2.AddRange(Encoding.UTF8.GetBytes("[Private] " + srcUsername + ": Sent file " + fileName + " | Location: " + currentPath + "\\" + user + "\\" + fileName + "\n"));
                            fromSock.Send(vs2.ToArray());
                            e.TcpClient.Client.Send(vs.ToArray());
                        }
                    }
                }
            }

            if (e.MessageString.Contains("closed"))
            {
                string username = e.MessageString.ToString().Split(':')[0];


                for (int i = 0; i < listOfClients.Count(); i++)
                {
                    if (listOfClients[i].getUsername() == username)
                    {
                        listOfClients.RemoveAt(i);
                    }
                }

                server.Broadcast("                         " + username + " just left!\n");
                txtStatus.Dispatcher.Invoke((Action) delegate()
                {
                    txtStatus.Text += "                         " + username + " just left!\n";
                });
            }
        }
Exemple #15
0
        static void SendDummyData(SimpleTcpServer server)
        {
            var data = System.IO.File.ReadAllBytes("clima_sensor_d.txt");

            server.Broadcast(data);
        }
Exemple #16
0
 public void sendToClient(string msg)
 {
     System.Threading.Thread.Sleep(500);
     byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(msg);
     server.Broadcast(bytesToSend);
 }
 private void SendToClient(CommandAndData commandAndData)
 {
     _server.Broadcast(commandAndData.ToBytes());
 }