Esempio n. 1
0
        public void Send(ProtocolType protocolType, Packet packet)
        {
            switch (protocolType)
            {
            case ProtocolType.Tcp:
                stream.Write(packet.ToBytes(), 0, packet.Length);
                break;

            case ProtocolType.Udp:
                udpClient.Send(packet.ToBytes(), packet.Length);
                break;
            }
        }
Esempio n. 2
0
        static async Task RunAsSensor()
        {
            Console.WriteLine("Sensor type: ");
            var sensorType = Console.ReadLine().Trim();

            const int low  = 2048;
            const int high = 4096;
            //const int barrier = high - low / 2;
            var rnd = new Random();

            while (true)
            {
                var data = rnd.Next(low, high + 1);
                Console.WriteLine($"{sensorType} : {data}");
                var packet      = new Packet(CLIENT_ID, ClientAction.Send, new string[] { sensorType }, data);
                var bytesToSend = packet.ToBytes();
                try
                {
                    _socket.Send(bytesToSend, 0, bytesToSend.Length, SocketFlags.None);
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"An error occured: {ex.Message}");
                    Thread.Sleep(2000);
                    Environment.Exit(0);
                }
                //if (data > barrier)
                //{

                //}
                await Task.Delay(data);
            }
        }
Esempio n. 3
0
        static async Task RunAsExecutor()
        {
            int input;

            GetSensorList();
            await Task.Delay(1000);

            if (ReceiviedCode == StatusCode.Fail)
            {
                Environment.Exit(0);
            }

            Console.WriteLine("Type: 1 - Valve; 2 - Pump; 3 - Switch;");
            while (!int.TryParse(Console.ReadLine(), out input))
            {
                Console.WriteLine("Type: 1 - Valve; 2 - Pump; 3 - Switch;");
            }

            SensorType = (Executor)input;

            Console.WriteLine($"{(Executor)input} - Get data from sensor: ");
            var sensorToSubscribe = Console.ReadLine().Trim();
            var packet            = new Packet(CLIENT_ID, ClientAction.Subscribe, sensorToSubscribe.Contains(';') ? sensorToSubscribe.Split(';') : new string[] { sensorToSubscribe }, null);

            var bytes = packet.ToBytes();

            _socket.Send(bytes, 0, bytes.Length, SocketFlags.None);
            new Thread(ListenForMessages).Start();
        }
Esempio n. 4
0
        private void OnLobbyReadyStateChange(bool state)
        {
            Debug.Log("Sending lobby ready state");
            Packet p = new Packet(PacketType.LOBBYEVENT, clientID);

            if (state)
            {
                p.GdataInts.Add(2);
                p.GdataInts.Add(1);
            }
            else
            {
                p.GdataInts.Add(2);
                p.GdataInts.Add(0);
            }
            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
                Debug.Log("Connection to server lost.");
                Disconnect();
            }
        }
Esempio n. 5
0
        private void button7_Click(object sender, EventArgs e) // show results
        {
            if (cbAdType.SelectedItem != null && cbGenre.SelectedItem != null && cbInstrument != null)
            {
                Packet searchQuery = new Packet(Packet.PacketType.Search, Connection.id);
                searchQuery.gData.Add(cbAdType.SelectedItem.ToString());
                searchQuery.gData.Add(cbGenre.SelectedItem.ToString());
                searchQuery.gData.Add(cbInstrument.SelectedItem.ToString());
                Connection.master.Send(searchQuery.ToBytes());

                Thread.Sleep(400);

                if (Connection.findedTitles.Length > 0)
                {
                    for (int i = 0; i < Connection.findedemail.Length; i++)
                    {
                        ListViewItem listItem = new ListViewItem(i.ToString());
                        listItem.SubItems.Add(Connection.findedemail[i]);
                        listItem.SubItems.Add(Connection.findedTitles[i]);
                        listView.Items.Add(listItem);
                    }
                }
                else
                {
                    MessageBox.Show("No results!");
                }
            }
            else
            {
                MessageBox.Show("Fill all combo boxes!");
            }
        }
Esempio n. 6
0
        private void OnProjectileSpawned(int projectileOwnerIndex, int projectileIndex,
                                         int projectileType, Vector3 spawnPosition, Vector3 spawnRotation,
                                         bool isControlledByServer)
        {
            if (!isControlledByServer)
            {
                Packet p = new Packet(PacketType.PROJECTILE, clientID);
                p.GdataInts.Add(0);
                p.GdataInts.Add(projectileOwnerIndex);
                p.GdataInts.Add(projectileIndex);
                p.GdataVectors.Add(new Vector_3(spawnPosition));
                p.GdataVectors.Add(new Vector_3(spawnRotation));

                try
                {
                    master.Send(p.ToBytes());
                }
                catch (SocketException ex)
                {
                    Debug.Log("SocketException: " + ex);
                    Debug.Log("Connection to server lost.");
                    Disconnect();
                }
            }
        }
Esempio n. 7
0
        void OnDisable()
        {
            em.OnRequestConnectToNetwork      -= OnRequestConnectToNetwork;
            em.OnRequestDisconnectFromNetwork -= OnRequestDisconnectFromNetwork;
            em.OnRequestServerIPAddress       -= Packet.GetIP4Address;


            Packet p = new Packet(PacketType.LOBBYEVENT, clientID);

            p.GdataInts.Add(4);
            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
            }

            if (incomingDataThread != null)
            {
                incomingDataThread.Abort();
                incomingDataThread = null;
                Debug.Log("IncomingData thread aborted");
            }

            if (master != null)
            {
                master.Close();
                master = null;
                Debug.Log("MasterSocket closed");
            }
        }
Esempio n. 8
0
        static void Main(string[] args)
        {
            try {
                ConsoleKeyInfo cki;
                Console.WriteLine("Enter Your Name:");
                name = Console.ReadLine();
                Console.Clear();
                cMaster = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                InitializeConnection();
                Thread t = new Thread(data_IN);
                t.Start();

                for (;;)
                {
                    Console.Write("::>");

                    cki = Console.ReadKey();
                    string input = Console.ReadLine();
                    Packet p     = new Packet(PacketType.mMessage, id);
                    p.Gdata.Add(name);
                    p.Gdata.Add(cki.KeyChar + input);
                    cMaster.Send(p.ToBytes());
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.ToString());
            }
        }
Esempio n. 9
0
        private void btnSendAdToServer_Click(object sender, EventArgs e)
        {
            if (cbAdType.SelectedItem != null && cbInstrument != null && cbMusicGenre != null && !string.IsNullOrWhiteSpace(tbTitle.Text) && !string.IsNullOrWhiteSpace(tbDesc.Text))
            {
                Packet adPacket = new Packet(Packet.PacketType.PostAd, Connection.id);
                adPacket.gData.Add(tbTitle.Text);
                adPacket.gData.Add(tbDesc.Text);
                adPacket.gData.Add(cbAdType.SelectedItem.ToString());
                adPacket.gData.Add(cbInstrument.SelectedItem.ToString());
                adPacket.gData.Add(cbMusicGenre.SelectedItem.ToString());
                adPacket.gData.Add(Connection.loggedUserEmail);
                Connection.master.Send(adPacket.ToBytes());

                Thread.Sleep(500);

                if (Connection.poadAdSuccess)
                {
                    MessageBox.Show("Success!");
                }
                else
                {
                    MessageBox.Show("Fail!");
                }
            }
            else
            {
                MessageBox.Show("Fill all fields!");
            }
        }
        static void SendMessage()
        {
            while (true)
            {
                try
                {
                    string input = Console.ReadLine();
                    Packet p;


                    if (input != "")
                    {
                        p = new Packet(PacketType.answer, input);
                        master.Send(p.ToBytes());

                        break;
                    }
                }
                catch (SocketException ex)
                {
                    ConsoleColor cc = Console.ForegroundColor;
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(ex.Message);
                    Console.WriteLine("Server Disconnected");
                    Console.ForegroundColor = cc;
                    master.Close();
                    Connecect();
                }
                catch
                {
                    Environment.Exit(0);
                }
            }
        }
Esempio n. 11
0
        // halutaan käynnistää alkuun tätä classia käynnistäessä
        public void Main(string nickName, string ip, string port, ClientForm form)
        {
            // merkkaa käyttöliittymän polun muuttujaan
            cForm = form;

            // socketin säädöt
            master = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ip), Int32.Parse(port));

            name = nickName;

            // yritetään liittyä halutulle serverille
            try
            {
                master.Connect(ipe);
                cForm.WriteMessage("Connected to the server!");

                // käynnistetään uusi threadi ottamaan dataa vastaan
                Thread t = new Thread(() => { Data_IN(cForm); });
                t.Start();

                // lähetetään paketti serverille rekisteröimistä varten
                Packet p = new Packet(PacketType.Registeration, name);
                master.Send(p.ToBytes());
            }

            // tehdään, mikäli yhteys serveriin ei jostain syystä onnistunut
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                cForm.WriteMessage("Could not connect to host!");
            }
        }
Esempio n. 12
0
        // lähettää viestin serverille
        public void SendMessage(string input)
        {
            Packet p = new Packet(PacketType.Chat, id);

            p.Gdata.Add(name);
            p.Gdata.Add(input);
            master.Send(p.ToBytes());
        }
Esempio n. 13
0
        public static void SendRegistrationPacket()
        {
            Packet p = new Packet(packetType.Registration, id);

            p.Gdata.Add(id);
            p.Gdata.Add(name);
            p.Gdata.Add(password);
            master.Send(p.ToBytes());
        }
        /// <summary>
        /// send message to server
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SendBtn_Click(object sender, RoutedEventArgs e)
        {
            string msg = Msg.Text;

            Msg.Text = string.Empty;

            Packet p = new Packet(PacketType.Chat, ID);

            p.data.Add(login);
            p.data.Add(msg);
            socket.Send(p.ToBytes());
        }
Esempio n. 15
0
 private void SendToServer(Packet p)
 {
     try
     {
         socket.Send(p.ToBytes());
     }
     catch (Exception ex)
     {
         AppendMsgBoard("Couldn't send this msg\r\n");
         AppendMsgBoard(ex.ToString() + "\r\n");
         Msg.Text = "";
     }
 }
Esempio n. 16
0
        private void DataManager(Packet p)
        {
            switch (p.packetType)
            {
            case PacketType.Registration:
                ID  = p.data[0];
                who = p.senderWho;
                Packet packet = new Packet(PacketType.Chat, ID);
                packet.data.Add(login);
                packet.data.Add("Connected");
                socket.Send(packet.ToBytes());
                SetLabelVisibility();
                break;


            case PacketType.Chat:
            case PacketType.CloseConnection:
                if (p.data.Count == 2)
                {
                    AppendMsgBoard(p.data[0] + ": " + p.data[1] + "\r\n");
                }
                else
                {
                    foreach (string str in p.data)
                    {
                        AppendMsgBoard(str + "\r\n");
                    }
                }
                if (p.packetBool == true)
                {
                    if (who == 'A')
                    {
                        myTurn = true;
                        SetLabelRdy("Twój ruch");
                    }
                    else if (who == 'B')
                    {
                        SetLabelRdy("Ruch przeciwnika");
                    }
                }
                break;

            case PacketType.Battleship_shot:
                Shoot(p);
                break;

            case PacketType.Game_over:
                GameOver(p);
                break;
            }
        }
        /// <summary>
        /// on window close event update server for close connection
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainWindow_Closed(object sender, EventArgs e)
        {
            if (isConnected)
            {
                Packet p = new Packet(PacketType.CloseConnection, ID);

                p.data.Add(login);
                p.data.Add("Exit from Chat");

                socket.Send(p.ToBytes());

                socket.Close();
                isConnected = false;
                thread.Abort();
            }
        }
Esempio n. 18
0
        private void OnExitNetworkMultiplayerMidGame()
        {
            Packet p = new Packet(PacketType.LOBBYEVENT, clientID);

            p.GdataInts.Add(4);
            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
                Debug.Log("Connection to server lost.");
                Disconnect();
            }
        }
Esempio n. 19
0
        private void OnRequestRestartFromServer()
        {
            Debug.Log("NetworkClient: OnRequestRestartFromServer");
            Packet p = new Packet(PacketType.GAMESTART, clientID);

            p.GdataInts.Add(2);
            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
                Debug.Log("Connection to server lost.");
                Disconnect();
            }
        }
Esempio n. 20
0
        private void OnRequestOnlineMatchStart()
        {
            Debug.Log("Sending start match request");
            Packet p = new Packet(PacketType.LOBBYEVENT, clientID);

            p.GdataInts.Add(3);
            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
                Debug.Log("Connection to server lost.");
                Disconnect();
            }
        }
Esempio n. 21
0
        private void OnRequestLobbyExit()
        {
            Packet p = new Packet(PacketType.LOBBYEVENT, clientID);

            p.GdataInts.Add(0);
            p.GdataInts.Add(0);
            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
                Debug.Log("Connection to server lost.");
                Disconnect();
            }
        }
Esempio n. 22
0
        private void OnNetworkMultiplayerMatchInitialized()
        {
            Debug.Log("Sending match initialization completed check to server");
            Packet p = new Packet(PacketType.GAMESTART, clientID);

            p.GdataInts.Add(1);
            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
                Debug.Log("Connection to server lost.");
                Disconnect();
            }
        }
Esempio n. 23
0
        static void Main(string[] args)
        {
            Console.Write("Enter host IP address: ");
            String ip = Console.ReadLine();

            Console.Clear();
            Console.Write("Enter your name: ");
            name = Console.ReadLine();
            Console.Write("Enter Password: "******"Wrong username or password!");
                    Console.WriteLine("Press any key to continue ..");
                    Console.ReadLine();
                }
            }

            catch
            {
                Console.WriteLine("Could not connect to host");
            }
        }
        private static bool Handler(CtrlType sig)
        {
            switch (sig)
            {
            case CtrlType.CTRL_C_EVENT:
            case CtrlType.CTRL_LOGOFF_EVENT:
            case CtrlType.CTRL_SHUTDOWN_EVENT:
            case CtrlType.CTRL_CLOSE_EVENT:
                Packet p = new Packet(PacketType.dissconnect, "");

                master.Send(p.ToBytes());
                master.Close();
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 25
0
        static void Main(string[] args)
        {
            Console.Write("Enter your name: ");
            name = Console.ReadLine();

            Console.Write("Enter host IP Address: ");
            string ip = Console.ReadLine();

            masterSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ip), 8888);

            try
            {
                masterSocket.Connect(ipe);
            }
            catch
            {
                Console.WriteLine("Could not connect to host IP");
            }

            Thread t = new Thread(DataIn);

            t.Start();

            while (true)
            {
                try
                {
                    string input = Console.ReadLine();

                    Packet p = new Packet(id, PacketType.Chat);
                    p.data.Add(name);
                    p.data.Add(input);
                    masterSocket.Send(p.ToBytes());
                }
                catch (SocketException ex)
                {
                    Console.WriteLine("The server has disconnected!");
                    Console.ReadLine();
                    Environment.Exit(1);
                }
            }
        }
Esempio n. 26
0
        private static void GetSensorList()
        {
            var packet = new Packet(CLIENT_ID, ClientAction.TopicList, null, null);
            var bytes  = packet.ToBytes();

            _socket.Send(bytes, 0, bytes.Length, SocketFlags.None);
            new Thread(() =>
            {
                try
                {
                    byte[] buffer;
                    int readBytes;
                    var contentRead = false;
                    while (!contentRead)
                    {
                        buffer    = new byte[_socket.Available];
                        readBytes = _socket.Receive(buffer, SocketFlags.None);
                        if (readBytes > 0)
                        {
                            var response = new Response(buffer);
                            if (response.Code == StatusCode.Fail)
                            {
                                Console.WriteLine("An error occured.");
                            }
                            else
                            {
                                Console.WriteLine(response.Message);
                                //var content = Encoding.ASCII.GetString(buffer);
                                //Console.WriteLine(content);
                                contentRead = true;
                            }
                            ReceiviedCode = response.Code;
                        }
                    }
                }
                catch (SocketException)
                {
                    Console.WriteLine("A server has disconnected.");
                    Console.ReadLine();
                    Environment.Exit(0);
                }
            }).Start();
        }
Esempio n. 27
0
        private void OnRequestLobbyEnter()
        {
            lobbyJoinedResponse = 2;
            Packet p = new Packet(PacketType.LOBBYEVENT, clientID);

            p.GdataInts.Add(0);
            p.GdataInts.Add(1);
            p.GdataStrings.Add(clientName);
            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
                Debug.Log("Connection to server lost.");
                Disconnect();
            }
        }
        /// <summary>
        /// manage all received packages by PacketType
        /// </summary>
        /// <param name="p"></param>
        private void DataManager(Packet p)
        {
            switch (p.packetType)
            {
            case PacketType.Registration:
                ID = p.data[0];
                Packet packet = new Packet(PacketType.Chat, ID);
                packet.data.Add(login);
                packet.data.Add("Enter to Chat");
                socket.Send(packet.ToBytes());
                break;


            case PacketType.Chat:
            case PacketType.CloseConnection:
                AddMsgToBoard(p.data[1], p.data[0]);
                break;
            }
        }
Esempio n. 29
0
        private void OnShipDead(int shipIndex, int killerIndex, float lifetime)
        {
            Packet p = new Packet(PacketType.DEATH, clientID);

            p.GdataInts.Add(0);
            p.GdataInts.Add(shipIndex);
            p.GdataInts.Add(killerIndex);

            try
            {
                master.Send(p.ToBytes());
            }
            catch (SocketException ex)
            {
                Debug.Log("SocketException: " + ex);
                Debug.Log("Connection to server lost.");
                Disconnect();
            }
        }
Esempio n. 30
0
        static void Main(string[] args)
        {
            Console.Write("Enter your name: ");
            name = Console.ReadLine();

            A : Console.Write("IP Adress: ");
            string rip = Console.ReadLine();

            master = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            IPEndPoint ip = new IPEndPoint(IPAddress.Parse(rip), 4242);

            try
            {
                master.Connect(ip);
            }
            catch
            {
                Console.WriteLine("Cannot connect...");
                Thread.Sleep(1000);
                goto A;
            }


            Thread t = new Thread(Data_IN);

            t.Start();

            while (true)
            {
                if (chatReady)
                {
                    Console.Write(": ");
                    string input = Console.ReadLine();

                    Packet p = new Packet(PacketType.Chat, id);
                    p.Gdata.Add(name);
                    p.Gdata.Add(input);
                    master.Send(p.ToBytes());
                    chatReady = false;
                }
            }
        }