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); } }
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(); }
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"); }
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; } }
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 + "."); }
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(); }
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; } } }