public void sendMsgToAllClients(messageToEveryone msg)
        {
            try
            {
                dataTypes objToSend = new dataTypes();

                objToSend.setType(typeof(messageToEveryone).ToString());
                objToSend.setObject(msg);

                IFormatter formatter = new BinaryFormatter();
                Stream stream = new MemoryStream();

                formatter.Serialize(stream, objToSend);

                byte[] buffer = ((MemoryStream)stream).ToArray();

                for (int index = 0; index < netServ.clients.Count; index++)
                    netServ.clients[index].getSocket().Send(buffer, buffer.Length, 0);

                stream.Close();
            }
            catch (Exception ex)
            {
                netServ.serverMW.appendDebugOutput(ex.Message);
            }
        }
        private void OnDataReceived(IAsyncResult asyn)
        {
            try
            {
                SocketPacket socketData = (SocketPacket)asyn.AsyncState;

                int bytesReceived = 0;
                bytesReceived = socketData.thisSocket.EndReceive(asyn);
                byte[] buffer = new byte[bytesReceived + 1];

                buffer = socketData.dataBuffer;

                IFormatter formatter = new BinaryFormatter();
                Stream stream = new MemoryStream();

                stream.Write(buffer, 0, buffer.Length);
                stream.Seek(0, 0);

                dataTypes objReceived = new dataTypes();

                objReceived = (dataTypes)formatter.Deserialize(stream);

                parseObject(objReceived);

                WaitForData();
            }
            catch (ObjectDisposedException)
            {
                System.Diagnostics.Debugger.Log(0, "1", "\nOnDataReceived: Socket has been closed\n");
            }
            catch (SocketException se)
            {
                MessageBox.Show(se.Message);
            }
        }
Exemple #3
0
        private static string dataTypeToText(dataTypes dT)
        {
            switch (dT)
            {
            case dataTypes.id:
                return("id");

            case dataTypes.last_name:
                return("last_name");

            case dataTypes.first_name:
                return("first_name");

            case dataTypes.father_name:
                return("father_name");

            case dataTypes.birthdate:
                return("birthdate");

            case dataTypes.number:
                return("number");

            case dataTypes.ac_group:
                return("ac_group");

            case dataTypes.mail:
                return("mail");

            case dataTypes.vk_id:
                return("vk_id");

            default:
                return(null);
            }
        }
        public void sendObjectToServer(dataTypes objToSend)
        {
            IFormatter formatter = new BinaryFormatter();
            Stream stream = new MemoryStream();

            formatter.Serialize(stream, objToSend);

            byte[] buffer = ((MemoryStream)stream).ToArray();

            m_clientSocket.Send(buffer, buffer.Length, 0);

            stream.Close();
        }
Exemple #5
0
        public static async Task <bool> addUserData(int userId, dataTypes data, string value)
        {
            try
            {
                string   phpUrl = "users/add_info.php";
                string[] args   = { "id=" + userId, "type=" + dataTypeToText(data), "value=" + value };
                await phpResult(phpUrl, args);

                return(true);
            }
            catch
            {
                return(false);
            }
        }
        private void sendBTN_Click(object sender, EventArgs e)
        {
            privateMessage prvMsg = new privateMessage();
            prvMsg.setWhoSent(clientMW.username);
            prvMsg.setToWho(withWho);
            prvMsg.setMessage(msgToSend.Text.Trim());

            appendText("[" + clientMW.username + "] " + prvMsg.message);

            msgToSend.Clear();

            dataTypes objToSend = new dataTypes();
            objToSend.setType(typeof(privateMessage).ToString());
            objToSend.setObject(prvMsg);

            netServ.sendObjectToServer(objToSend);
        }
        internal void sendUserlistToClients(userList connectedUsers)
        {
            dataTypes objToSend = new dataTypes();

            objToSend.setType(typeof(userList).ToString());
            objToSend.setObject(connectedUsers);

            IFormatter formatter = new BinaryFormatter();
            Stream stream = new MemoryStream();

            formatter.Serialize(stream, objToSend);

            byte[] buffer = ((MemoryStream)stream).ToArray();

            for (int index = 0; index < netServ.clients.Count; index++)
                netServ.clients[index].getSocket().Send(buffer, buffer.Length, 0);

            stream.Close();
        }
        /// <summary>
        /// Converts the value and type to a string to be inputted into the file
        /// </summary>
        /// <param name="type">the datatype to convert</param>
        /// <param name="isArray">should the data type be an array?</param>
        /// <param name="isList">should the data type be a list?</param>
        /// <param name="name">the value name to apply</param>
        /// <param name="cName">class name value</param>
        /// <returns>string with the result</returns>
        private string ConvertTypeToString(dataTypes type, bool isArray, bool isList, string name, string cName, int pos)
        {
            string _newString = "";

            string _type = type.ToString().Replace("Value", "");

            if (name == "")
            {
                name = _type + pos;
            }


            if (type != dataTypes.classValue)
            {
                if (!_type.Equals("Vector2") && !_type.Equals("Vector3") && !_type.Equals("Vector4") && !_type.Equals("Color"))
                {
                    if (isArray)
                    {
                        _newString = "        [SerializeField] public " + _type + "[] " + name + ";";
                    }
                    else if (isList)
                    {
                        _newString = "        [SerializeField] public List<" + _type + "> " + name + ";";
                    }
                    else
                    {
                        _newString = "        [SerializeField] public " + _type + " " + name + ";";
                    }
                }
                else
                {
                    if (isArray)
                    {
                        _newString = "        [SerializeField] public " + "Save" + _type + "[] " + name + ";";
                    }
                    else if (isList)
                    {
                        _newString = "        [SerializeField] public " + "List<Save" + _type + "> " + name + ";";
                    }
                    else
                    {
                        _newString = "        [SerializeField] public " + "Save" + _type + " " + name + ";";
                    }
                }
            }
            else
            {
                if (cName != "")
                {
                    if (isArray)
                    {
                        _newString = "        [SerializeField] public " + cName + "[] " + name + ";";
                    }
                    else if (isList)
                    {
                        _newString = "        [SerializeField] public " + "List<" + cName + "> " + name + ";";
                    }
                    else
                    {
                        _newString = "        [SerializeField] public " + cName + " " + name + ";";
                    }
                }
                else
                {
                    Debug.LogError(" *** (Save Manager) *** | Unable to final a class of type " + cName + ". Please check the class exsits in your project, if it is under a namespace you will need to add the using... to the generated class yourself or declare it with the namespace in the class value.");
                }
            }


            return(_newString);
        }
        private void parseObject(dataTypes objReceived, Socket m_socWorker)
        {
            if (objReceived.objectType.Equals(typeof(loginInfo).ToString()))
            {
                loginInfo clientInfo = (loginInfo)objReceived.myObject;
                bool result = DS.isClientAuthorized((loginInfo)objReceived.myObject);
                if (result) serverMW.appendDebugOutput("New client connecterd : " + clientInfo.username);

                for (int i = 0; i < clients.Count; i++)
                {
                    if (clients[i].getSocket() == m_socWorker)
                        clients[i].setName(clientInfo.username);
                }

                userList connectedUsers = new userList();
                for (int index = 0; index < clients.Count; index++)
                {
                    connectedUsers.users.Add(clients[index].getUserName());
                }

                STCB.sendUserlistToClients(connectedUsers);
            }
            else if (objReceived.objectType.Equals(typeof(messageToEveryone).ToString()))
            {
                messageToEveryone msg = (messageToEveryone)objReceived.myObject;
                STCB.sendMsgToAllClients(msg);
            }
            else if (objReceived.objectType.Equals(typeof(startPrivate).ToString()))
            {
                startPrivate startPRV = (startPrivate)objReceived.myObject;
                STCB.sendMsgToClient(startPRV.withWho, objReceived);
            }
            else if (objReceived.objectType.Equals(typeof(privateMessage).ToString()))
            {
                privateMessage prvMsg = (privateMessage)objReceived.myObject;
                STCB.sendMsgToClient(prvMsg.toWho, objReceived);
            }
            else if (objReceived.objectType.Equals(typeof(closePrivate).ToString()))
            {
                closePrivate closePrv = (closePrivate)objReceived.myObject;
                STCB.sendMsgToClient(closePrv.toWho, objReceived);
            }
            else throw new Exception("Unsupported object type");
        }
 InitializedCache(kits, contentTypes, dataTypes: dataTypes);
        public void OnDataReceived(IAsyncResult asyn)
        {
            try
            {
                SocketPacket socketData = (SocketPacket)asyn.AsyncState;

                int bytesReceived = 0;
                bytesReceived = socketData.m_currentSocket.EndReceive(asyn);
                byte[] buffer = new byte[bytesReceived + 1];

                buffer = socketData.dataBuffer;

                IFormatter formatter = new BinaryFormatter();
                Stream stream = new MemoryStream();

                stream.Write(buffer, 0, buffer.Length);
                stream.Seek(0, 0);

                dataTypes objReceived = new dataTypes();

                objReceived = (dataTypes)formatter.Deserialize(stream);

                parseObject(objReceived, socketData.m_currentSocket);

                stream.Close();

                WaitForData(socketData.m_currentSocket);
            }
            catch (ObjectDisposedException)
            {
                System.Diagnostics.Debugger.Log(0, "1", "\nOnDataReceived: Socket has been closed\n");
            }
            catch (SocketException se)
            {
                if (se.ErrorCode.ToString().Equals("10054"))
                {

                    SocketPacket socketData = (SocketPacket)asyn.AsyncState;

                    serverMW.appendDebugOutput("Client disconnected : ");

                    for (int i = 0; i < m_clientCount; i++)
                    {
                        if (m_socWorker[i] == socketData.m_currentSocket)
                            for (int j = i; j < m_clientCount - 1; j++)
                            {
                                m_socWorker[j] = m_socWorker[j + 1];
                            }
                        m_clientCount--;
                    }

                    for (int i = 0; i < clients.Count; i++)
                        if (clients[i].getSocket() == socketData.m_currentSocket)
                        {
                            serverMW.appendDebugOutput(clients[i].getUserName());
                            clients.Remove(clients[i]);

                        }

                    socketData.m_currentSocket.Close();
                    socketData.m_currentSocket.Dispose();

                    userList connectedUsers = new userList();

                    for (int index = 0; index < clients.Count; index++)
                    {
                        connectedUsers.users.Add(clients[index].getUserName());
                    }

                    STCB.sendUserlistToClients(connectedUsers);
                }
            }
            catch (Exception ex)
            {
                serverMW.appendDebugOutput(ex.Message);
            }
        }
 private void parseObject(dataTypes objReceived)
 {
     if (objReceived.objectType.Equals(typeof(messageToEveryone).ToString()))
     {
         messageToEveryone msg = (messageToEveryone)objReceived.myObject;
         clientMW.appendText("["+ msg.whoAmI + "] " + msg.message);
     }
     else if (objReceived.objectType.Equals(typeof(userList).ToString()))
     {
         userList onlineClients = (userList)objReceived.myObject;
         clientMW.appendUsers(onlineClients.users);
     }
     else if (objReceived.objectType.Equals(typeof(startPrivate).ToString()))
     {
         startPrivate startPRV = (startPrivate)objReceived.myObject;
         clientMW.startPrivateConversationByServer(startPRV.whoStarts);
     }
     else if (objReceived.objectType.Equals(typeof(privateMessage).ToString()))
     {
         privateMessage prvMsg = (privateMessage)objReceived.myObject;
         clientMW.pushPrivateToWindow(prvMsg);
     }
     else if (objReceived.objectType.Equals(typeof(closePrivate).ToString()))
     {
         closePrivate closePrv = (closePrivate)objReceived.myObject;
         clientMW.closePrivate(closePrv);
     }
     else throw new Exception("Unsupported object type");
 }
Exemple #13
0
        private void loginBTN_Click(object sender, EventArgs e)
        {
            loginInfo myLoginInfo = new loginInfo();

            username = usernameTB.Text.Trim().ToString();
            myLoginInfo.setUsername(username);
            myLoginInfo.setPassword(passwordTB.Text.Trim().ToString());

            dataTypes objToSend = new dataTypes();

            objToSend.setType(typeof(loginInfo).ToString());
            objToSend.setObject(myLoginInfo);

            IFormatter formatter = new BinaryFormatter();
            Stream stream = new MemoryStream();

            formatter.Serialize(stream, objToSend);

            byte[] buffer = ((MemoryStream)stream).ToArray();

            netServ.m_clientSocket.Send(buffer, buffer.Length, 0);

            stream.Close();

            showChat();

            msgHst.Text = "Welcome to Student Connections. You are connected as [" + username + "].";
        }
        internal void AddToComboBox(dataTypes queryType, string[] stringArray, ComboBox comboBoxName)
        {
            TextBox cboxitem = new TextBox();

            if (stringArray[0].Equals("NONE DEFINED") || stringArray[0].Equals("0")) {
                MessageBox.Show("No " + queryType.ToString() + " values returned");//ERROR
            }
            else if (queryType == dataTypes.MTR) {
                Int16 motor_count = Int16.Parse(stringArray[0]);
                if (motor_count != 0) {
                    for (int i = 1; i <= motor_count; i++) {
                        comboBoxName.Items.Add(i);
                    }
                }
                // sets defaul to first index
                comboBoxName.SelectedIndex = 0;
            }
            else if (queryType == dataTypes.RHY) // same as above for now, may change in near future
            {
                String[] splitRhy = new String[3];
                for (int i = 1; i < stringArray.Length; i++) {
                    if (stringArray[i] != null) {
                        splitRhy = stringArray[i].Split(',');
                        comboBoxName.Items.Add(splitRhy[0]);
                    }
                }
                // sets default to first index
                comboBoxName.SelectedIndex = 0;
            }
            else if (queryType == dataTypes.MAG) {
                String[] splitMag = new String[2];

                // clear magnitude_table
                for (int i = 0; i < magnitude_table.Length; i++) {
                    magnitude_table[i] = null;
                }

                try { //Convert.ToInt16 can cause exception
                    for (int i = 1; i < stringArray.Length; i++) {
                        if (stringArray[i] != null) {
                            splitMag = stringArray[i].Split(',');

                            // Ensure that the string array conforms to expected format before processing
                            if (splitMag.Length == 2) {
                                magnitude_table[i - 1] = splitMag[0]; // records Alpha character of each magnitude
                                string Percentage = splitMag[1];
                                cboxitem.Text = Percentage;
                                comboBoxName.Items.Add(Percentage + "%");
                            }
                            // Else -> process period and duty cycle
                            else if (splitMag.Length == 3) {
                                magnitude_table[i - 1] = splitMag[0]; // records Alpha character of each magnitude;
                                double Period = Convert.ToInt32(splitMag[1]);
                                double DutyCycle = Convert.ToInt32(splitMag[2]);
                                int Percentage = (int)((DutyCycle / Period) * 100);
                                cboxitem.Text = Percentage.ToString();
                                comboBoxName.Items.Add(Percentage.ToString() + "%");
                            }
                        }
                    }
                }
                catch (Exception ex) {
                    MessageBox.Show("ERROR" + ex.Message);
                }
                // sets default to first index
                comboBoxName.SelectedIndex = 0;
            }
        }
Exemple #15
0
        public void startPrivateConversation(string withWho)
        {
            appendText(withWho);

            if (notAlreadyOpen(withWho))
            {
                dataTypes objToSend = new dataTypes();
                objToSend.setType(typeof(startPrivate).ToString());

                startPrivate startPrv = new startPrivate();
                startPrv.setWhoStarts(username);
                startPrv.setWithWho(withWho);

                objToSend.setObject(startPrv);

                netServ.sendObjectToServer(objToSend);

                try
                {
                    Thread sf = new Thread(showPrivateWindow);
                    sf.Start(withWho);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else MessageBox.Show("Already in a private conversation with " + withWho + ".");
        }
Exemple #16
0
        private void sendBTN_Click(object sender, EventArgs e)
        {
            messageToEveryone msg = new messageToEveryone();

            msg.setMessage(msgBox.Text.Trim());
            msg.setMe(username);

            dataTypes objToSend = new dataTypes();

            objToSend.setType(typeof(messageToEveryone).ToString());
            objToSend.setObject(msg);

            IFormatter formatter = new BinaryFormatter();
            Stream stream = new MemoryStream();

            formatter.Serialize(stream, objToSend);

            byte[] buffer = ((MemoryStream)stream).ToArray();

            netServ.m_clientSocket.Send(buffer, buffer.Length, 0);

            stream.Close();

            msgBox.Clear();
        }
Exemple #17
0
        private void prvConvWindow_FormClosed(object sender, FormClosedEventArgs e)
        {
            //TODO : filter send to server by ifremoved from list<>
            privateConversation _temp = (privateConversation)sender;
            _temp.Dispose();

            for (int index = 0; index < prvConversations.Count; index++)
            {
                if (prvConversations[index] == _temp)
                {
                    prvConversations.Remove(_temp);

                    closePrivate closePrv = new closePrivate();
                    closePrv.setWhoSent(username);
                    closePrv.setToWho(_temp.withWho);

                    dataTypes objectToSend = new dataTypes();
                    objectToSend.setType(typeof(closePrivate).ToString());
                    objectToSend.setObject(closePrv);

                    netServ.sendObjectToServer(objectToSend);

                    break;
                }
            }
        }