Автор работы: Пользователь скрыл имя, 20 Августа 2013 в 23:24, дипломная работа
Актуальность моей работы заключается в создании инструмента для разработки приложений, связанных между собой по сети и работающих как единая система.
Сейчас распространена клиент-серверная сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.
Введение 3
Глава 1. Оптимизация приложений 6
1.1 Механизмы оптимизации 6
1.2 Архитектурный принцип построения сетей 9
1.3 Пропускная способность сети 11
1.4 Поток данных 12
1.5 Гибридные сети 20
1.6 Брэндмауэр Windows 22
1.7 Отличие С# от Java 24
1.8 JSON. Передача объектов 36
Глава 2. Программная часть 38
2.1 Среда разработки 38
2.2 Язык программирования 39
2.3 Диаграммы классов 40
2.4 Диаграммы взаимодействия 43
2.5 Алгоритм работы 45
2.6 Интерфейс приложения 47
Заключение 49
Список использованной литературы 50
if (clientPanels.Values[index] != null)
{
Controls.Remove(clientPanel);
clientPanel = clientPanels.Values[index];
Controls.Add(clientPanel);
}
else
{
var panel = new ClientPanel(clientPanel, clientInfo);
panel.Tag = listViewClients.SelectedItems[
clientPanels[clientInfo] = panel;
Controls.Remove(clientPanel);
clientPanel = panel;
Controls.Add(clientPanel);
}
}
//при выходе закрываем сокеты, чтоб не висели
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
NetClient.Stop();
}
#endregion
#region internal
private void ShowSaveFileDialog(ClientInfo clientInfo, string fname)
{
InvokeCall(this, () =>
{
var dialog = new SaveFileDialog();
dialog.Title = @"Входящий файл от " + clientInfo.Name;
dialog.FileName = fname;
if (dialog.ShowDialog() == DialogResult.OK)
{
receiveFile = true;
if (File.Exists(dialog.FileName))
File.Delete(dialog.FileName);
receiveFileName = dialog.FileName;
}
});
}
private void ProcessClientList(List<ClientI
{
if (clientList == null)
return;
foreach (ClientInfo client in clientList)
{
int index = clientPanels.IndexOfKey(
if (index < 0)
clientPanels.Add(client, null);
else
clientPanels.Keys[index].
}
UpdateListViewItems();
}
//если изменилась информация о доступности клиентов - то обновляем клиент-лист на форме
private void UpdateListViewItems()
{
var clientItems = new List<ListViewItem>();
foreach (var client in clientPanels)
{
var item = new ListViewItem();
item.Tag = client.Key;
item.Text = client.Key.Name;
item.Group = client.Key.IsAlive
clientItems.Add(item);
}
InvokeCall(listViewClients, () => listViewClients.Items.Clear())
InvokeCall(listViewClients, () => listViewClients.Items.
}
private void InvokeCall(Control control, Action action)
{
if (control.InvokeRequired)
Invoke(action);
else
action();
}
#endregion
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
using System;
using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace Client
{
static class Settings
{
public static int MessagePort = 10000;
public static int FilePort = MessagePort + 1;
public static string ServerHost = "localhost";
public static int ServerPort = 9999;
public static string Name = "Client";
private static string fname = Environment.CurrentDirectory + "\\Settings.xml";
//ищет файл настроек, если он найден - то пытается их загрузить.
//если загрузка
неуспешна, то остаются
static Settings()
{
if (!File.Exists(fname))
{
//создаем настройки по умолчанию
Save();
return;
}
try
{
using (XmlTextReader reader = new XmlTextReader(fname))
{
reader.WhitespaceHandling = WhitespaceHandling.None;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
if (reader.Name.Equals("Settings"
}
}
}
catch
{
MessagePort = 10000;
FilePort = MessagePort + 1;
ServerHost = "localhost";
ServerPort = 9999;
MessageBox.Show(@"Проверьте файл настроек, загружены настройки по умолчанию", @"Ошибка",
}
}
// сохраняет все измененные настройки в XML
public static void Save()
{
try
{
using (XmlWriter writer = new XmlTextWriter(fname, new UTF8Encoding()))
{
writer.WriteStartDocument();
writer.WriteStartElement("
writer.WriteElementString("
writer.WriteElementString("
writer.WriteElementString("
writer.WriteStartElement("
writer.WriteElementString("
writer.WriteElementString("
writer.WriteEndElement();
writer.WriteEndElement();
}
}
catch (Exception e)
{
MessageBox.Show(@"Ошибка сохранения настроек!" + Environment.NewLine + e.Message, @"Ошибка",
}
}
}
}
1
http://ru.wikipedia.org/wiki/
2
http://ru.wikipedia.org/wiki/
3
http://www.ixbt.com/comm/tech-
4 http://ru.wikipedia.org/wiki
5
http://www.csharpblog.ru/node/
6
http://ru.wikipedia.org/wiki/
Воронеж 2013
Информация о работе Программа по оптимизации передачи данных через сервер