private void EditFile(object sender, RoutedEventArgs e) { string nameFile = fileList.SelectedItem.ToString(); ParametrsClass parametrsClass = new ParametrsClass(); parametrsClass.fileName = nameFile; parametrsClass.operation = "readFileForEdit"; parametrsClass.userName = userName; sendMessageToServer(JsonEncode(parametrsClass)); }
private void Button_Click(object sender, RoutedEventArgs e) { string login = LoginBox.Text; string pass = PassBox.Password; ParametrsClass parametrsClass = new ParametrsClass(); parametrsClass.userName = login; parametrsClass.userPass = pass; parametrsClass.operation = "Connect"; sendMessageToServer(JsonEncode(parametrsClass)); }
private void ConnectClick(object sender, RoutedEventArgs e) { string login = LoginBox.Text; string pass = PassBox.Password; ParametrsClass parametrsClass = new ParametrsClass { userName = login, userPass = pass, operation = "ConnectAdmin" }; sendMessageToServer(JsonEncode(parametrsClass)); }
public void sendMessageToServer(string message) { var tcpEndPoint = new IPEndPoint(IPAddress.Parse(ip), port); var tcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var data = Encoding.UTF8.GetBytes(message); tcpSocket.Connect(tcpEndPoint); tcpSocket.Send(data); var buffer = new byte[256]; var size = 0; var answer = new StringBuilder(); do { size = tcpSocket.Receive(buffer); answer.Append(Encoding.UTF8.GetString(buffer, 0, size)); }while (tcpSocket.Available > 0); ParametrsClass receivedData = JsonConvert.DeserializeObject <ParametrsClass>(answer.ToString()); switch (receivedData.operation) { case "authentication": if (Convert.ToBoolean(receivedData.authentication)) { hideUILogin(true); userName = receivedData.userName; } else { MessageBox.Show("Неправильный логин или пароль или нет прав"); } break; } }
public void sendMessageToServer(string message) { var tcpEndPoint = new IPEndPoint(IPAddress.Parse(ip), port); var tcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var data = Encoding.UTF8.GetBytes(message); tcpSocket.Connect(tcpEndPoint); tcpSocket.Send(data); var buffer = new byte[256]; var size = 0; var answer = new StringBuilder(); do { size = tcpSocket.Receive(buffer); answer.Append(Encoding.UTF8.GetString(buffer, 0, size)); }while (tcpSocket.Available > 0); string[] answerFromServer = answer.ToString().Split('/'); ParametrsClass receivedData = JsonConvert.DeserializeObject <ParametrsClass>(answer.ToString()); switch (receivedData.operation) { case "authentication": if (Convert.ToBoolean(receivedData.authentication)) { hideUILogin(true); userName = receivedData.userName; } else { MessageBox.Show("Неправильный логин или пароль"); } break; case "bodyFile": ReadFileForm readFileForm = new ReadFileForm(receivedData.fileBody); readFileForm.Show(); break; case "fileDeleted": break; case "bodyEditFile": EditFileForm editFileFrom = new EditFileForm(receivedData.fileBody); editFileFrom.mainWindow = this; editFileFrom.nameFile = receivedData.fileName; editFileFrom.Show(); break; case "filesList": break; case "userAdded": if (Convert.ToBoolean(receivedData) == true) { MessageBox.Show("Пользователь успешно создан"); } break; case "usersList": break; default: break; } tcpSocket.Shutdown(SocketShutdown.Both); tcpSocket.Close(); }
//Метод для создания запроса json public string JsonEncode(ParametrsClass parametrsClass) { return(JsonConvert.SerializeObject(parametrsClass)); }
static void Main(string[] args) { const string ip = "127.0.0.1"; const int port = 8080; var tcpEndPoint = new IPEndPoint(IPAddress.Parse(ip), port); var tcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); tcpSocket.Bind(tcpEndPoint); tcpSocket.Listen(15); while (true) { var listener = tcpSocket.Accept(); var buffer = new byte[256]; var size = 0; var data = new StringBuilder(); do { size = listener.Receive(buffer); data.Append(Encoding.UTF8.GetString(buffer, 0, size)); }while (listener.Available > 0); ParametrsClass receivedData = JsonConvert.DeserializeObject <ParametrsClass>(data.ToString()); Console.WriteLine(DateTime.Now.ToString() + " " + "User - " + receivedData.userName + ", did operation - " + receivedData.operation); ParametrsClass answerObject = new ParametrsClass(); switch (receivedData.operation) { case "Connect": answerObject.authentication = Users.AuthUser(receivedData.userName, receivedData.userPass).ToString(); answerObject.operation = "authentication"; answerObject.userName = receivedData.userName; break; case "readFile": answerObject.operation = "bodyFile"; answerObject.fileBody = Documents.GetContentFromFile("texts/" + receivedData.fileName); break; case "readFileForEdit": answerObject.operation = "bodyEditFile"; answerObject.fileBody = Documents.GetContentFromFile("texts/" + receivedData.fileName); answerObject.userName = receivedData.userName; break; case "loadFiles": break; case "deleteFile": break; case "addOrEditFile": Documents.WriteContentToFile("texts/" + receivedData.fileName + ".txt", receivedData.fileBody); break; case "addUser": string login = receivedData.answer.Split('/')[0].Split(':')[1]; string password = receivedData.answer.Split('/')[1].Split(':')[1]; Users.AddNewUser(login, password); answerObject.answer = "True"; break; case "checkUsers": break; default: break; } listener.Send(Encoding.UTF8.GetBytes(JsonEncode(answerObject))); listener.Shutdown(SocketShutdown.Both); listener.Close(); } }