public void HandleConnection() { try { /* функция AcceptTcpClient() блокирующий, * поэтому надо исполнять код в блоке try-catch! */ TcpClient client = serverCopy.AcceptTcpClient(); NetworkStream ns = client.GetStream(); connections++; recv = ns.Read(data, 0, data.Length); ns.Write(data, 0, recv); ns.Flush(); ns.Close(); client.Close(); string info = Encoding.Default.GetString(data, 0, recv); string index = " " + connections.ToString() + "."; string time = DateTime.Now.ToString(); string orderId = DateTime.Now.Ticks.ToString() + ".doc"; TcpFileHandler fh = new TcpFileHandler(); fh.CreateOrderFile(orderId, info); string fullOrderInfo = index + "\t\t" + time + "\t\t" + orderId; fh.ListBoxAddItem(fullOrderInfo); } catch (SocketException) { /* алт.: ничего не предпринимать */ return; } }
public Form1() { InitializeComponent(); this.SizeChanged += new EventHandler(Form1_SizeChanged); // передать "оригинальный" listBox1 объект TcpFileHandler.SetControls(listBox1); fh.GetFolderForOrders(); folderBrowserDialog1.Description = @"Создать/Изменить папку для хранения файлов заказов *При изменении папки все файлы будут копированы в новую папку. Старая не будет удалена в целях безопасности."; }
private void StarTcpServer_Click(object sender, EventArgs e) { if (TcpFileHandler.actualFolder == null) { MessageBox.Show(@"Папка для хранения файлов заказов не обнаружена. Пожалуйста, создайте новую!"); while (true) { DialogResult res = folderBrowserDialog1.ShowDialog(); if (res == DialogResult.OK) { /* создать файл для хранения настроек, * если нет ни одной */ TcpFileHandler.CreateOrAlterFolderForOrders( folderBrowserDialog1); fh.GetFolderForOrders(); break; } else if (res == DialogResult.Cancel) { MessageBox.Show(@"Вы ещё не создали папку для хранения файлов заказов. Чтобы начать работу, пожалуйста, создайте одну!"); break; } } } else { if (Directory.Exists(TcpFileHandler.actualFolder)) { // и только потом, запускать сервер if (!PizzeriaTcpServer.serviceOn) { service.StartTcpServer(); } else { MessageBox.Show("Сервер уже запущен!"); } } else { MessageBox.Show(@"Папка для хранения файлов заказов не обнаружена. Она либо была удалена вручную, или перенесена в другое место! Создайте новую папку чтобы начать работу."); } } }
private void openOrAlterFolderToolStripMenuItem_Click( object sender, EventArgs e) { if (!PizzeriaTcpServer.serviceOn) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { TcpFileHandler.CreateOrAlterFolderForOrders( folderBrowserDialog1); // перезаписать файл для хранения настроек TcpFileHandler.SetSettingsFile(folderBrowserDialog1); fh.GetFolderForOrders(); } } else { MessageBox.Show("Сначала отключите соединение!"); } }