- •Введение
- •Описание инструмента разработки программы
- •Описание использованных технологий. Язык программирования c#
- •MySql и язык запросов sql
- •Описание алгоритма md5(rfc1321)
- •Скорость работы и производительность
- •Надежность
- •Стойкость к нахождению коллизий
- •Описание разработанных компонентов программы. Описание базы данных
- •Описание протокола передачи данных
- •Программа-сервер
- •Описание разработанных классов
- •Программа-клиент
- •Руководство пользователя. Требования к программному и аппаратному обеспечению
- •Инструкция по использованию программного средства. Программа-сервер
- •Программа-клиент
- •Расчет экономических показателей программного продукта. Расчет себестоимости и цены программного продукта
- •Сравнение по экономическим показателям
- •Безопасность жизнедеятельности
- •Характеристика вредных факторов при работе с пк
- •Требования к размещению и оборудованию рабочего места с пк
- •Причины и профилактика статического и зрительного утомления
- •Профилактика зрительного утомления
- •Профилактика общего утомления
- •Пожарная безопасность
- •Приложения Профилактика зрительного утомления
- •Профилактика общего утомления
- •Размещено на Allbest.Ru
Программа-клиент
Класс «Client»
public class Client
{
private Thread bgListener; //слушающий поток
private TcpClient socket; //сокет клиента
private bool connected; //флаг подключения
public string name; //имя пользователя
//события, срабатывающее при поступлении данных
public event DataReceivedEventHandler DataReceived;
public Client(); //конструктор клиента
//подключение и аторизация на сервере
public bool Connect(string ServerIP, string login, string pass);
//регистрация на сервере
public bool Register(string ServerIP, string login, string pass);
//функция, принимающая данные от сервера
private void ListeningFunction();
public void Send(string str); //отправка сообщений серверу
public void Disconnect(); //отключение от сервера
public bool Connected(); //проверка статуса подключения
}
Класс «Client» реализует взаимодействие и обмен данными с сервером.
Класс «Controller»
public class Controller
{
private Client chat; //указатель на обьект Client
private MainForm mainForm; //указатель на главную форму
private FileTrasferer transferer; //обьект для передачи файла
private string filename; //имя передаваемого файла
private string transferUser; //кому передавать файл
private long fileSize; //размер файла
private Stream stream; //поток чтени/записи файла
public fileTransfering transferStatus; //статус передачи
private string serverIP; //IP сервера для подключения
//конструктор управляющего обьекта
public Controller(MainForm form, Client client);
//подключение к серверу, вызов метода Connect обьекта Client
public bool Connect(string ServerIP, string login, string pass);
//регистрация на сервере, вызов метода Register обьекта Client
public bool Register(string ServerIP, string login, string pass);
//выполнение необходимой команды
public void ExecuteCommand(string str);
//обработка полученной команды
private void Parse(string str);
//отмена передачи файла
public void CancelTransferRequest();
//информирование пользователя о ходе передачи
private void ShowTransferProgress(int n, long totalSize);
//завершение передачи файла
private void FinishTransferFile(bool success);
//отмена передачи файла
public void AbortTransfer();
//отослать сообщение в общую комнату
public void SendAll(string str);
//отослать сообщение в приватную комнату
public void SendPrivate(string target, string str);
//передача файла
public void SendFileRequest(string target);
//вернуть статус подключения
public bool ChatConnected();
//отключиться от сервера
public void ChatDisconnect();
//вернуть имя пользователя
public string GetNameClient();
//вернуть IP сервера, к которому подключен клиент, необходимо //для информирования пользователя
public string GetServerIP();
}
Класс «Controller» является главным в программе, он отслеживает состояние клиента, обмен клиентом данными с сервером и реализует взаимодействие с интерфейсом программы. Так же с помощью данного класса производится вывод информации в общую и приватные комнаты.
Класс «MainForm»
public partial class MainForm : Form
{
private Controller brain; //управляющий обьект
public List<PrivateRoom> tabs; //коллекция приватных комнат
public FileTransferForm transferForm; //форма для //информирования пользователя о ходе передачи файла
private Icon icon1; //иконки трея
private Icon icon2;
public MainForm(); //конструктор главной формы
//подключение к серверу, создание обектов Controller и Client
private void подключениеToolStripMenuItem_Click(object sender, EventArgs e);
static string getMd5Hash(string input); //вычисление хеша пароля
//установить указатель на управляющийобьект
public void setController(Controller controller);
//вызов метода Connect обьекта Controller
public void Login(string serverIP, string login, string pass);
//вызов метода Register обьекта Controller
public void Register(string serverIP,string login, string pass);
//добавление сообщения в главную комнату
public void UpdateMainWindow(string str, bool alarm);
//обновление списка собеседников
public void UpdateUserlist(string userlist);
//обработка начжатия клавиши отправки сообщения
private void sendButton_Click(object sender, EventArgs e);
//обработка отключения от сервера
public void OnDisconnect(string reason);
//корректное завершение программы при закрытии гдавной //формы
private void MainForm_FormClosing(object sender, FormClosingEventArgs e);
//отключение от сервера
private void отключениеToolStripMenuItem_Click(object sender, EventArgs e);
//отправка сообщения по нажатию клавиши «Enter»
private void sendTextBox_KeyDown(object sender, KeyEventArgs e);
//выбор собеседника для создания приватной комнаты
private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e);
//создание приватной комнаты и интерфейса общения в приватной комнате
public void CreateTab(string str);
//выход из приватной комнаты
private void CloseTab(string str);
//добавление сообщения в приватную комнату
public void UpdatePrivateRoom(string name, string sender, string param, bool backmessage);
//показать созданную приватную комнату
private void mainTabControl_SelectedIndexChanged(object sender, EventArgs e);
//доступность элементов управления взависимости от состояния //подключения
public void ChangeStateButton(bool b);
public void AbortTransfer(); //отмена передачи файла
public void SetOpportunitySending(bool opportunity);
//обработка свертывания в трей
private void MainForm_SizeChanged(object sender, EventArgs e);
//информирование пользователя о сообщении, когда главное //окно свернуто в трей
public void startAlarm();
public void stopAlarm();
//разворачивание из трея
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e);
private void MainForm_Activated(object sender, EventArgs e);
//вызов О Программе
private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e);
//создание приватной комнаты
private void button1_Click(object sender, EventArgs e);
}
Класс «MainForm» реализует взаимодействие между пользователем и программой.
Когда пользователь подключается к серверу, если подключение прошло удачно, создается объект класса Controller, в котором создается объект класса Client. В данном объекте есть функция, которая слушает команды от сервера, которые передает на обработку объекту Controller. При запуске программы создается объект класса MainForm, который осуществляет взаимодействие между интерфейсом и управляющим объектом класса Controller/