Разработка программы "Сетевой чат"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



полученную команду и производит ответные действия. Объект класса MainForm созданный при запуске программы-сервера, реализуется взаимодействие интерфейса программы с объектом класса Server/

Программа-клиент

Класс Clientclass Client

{Thread bgListener;//слушающий потокTcpClient socket;//сокет клиентаbool connected;//флаг подключенияstring name;//имя пользователя

//события, срабатывающее при поступлении данныхevent DataReceivedEventHandler DataReceived;Client();//конструктор клиента

//подключение и аторизация на сервереbool Connect(string ServerIP, string login, string pass);

//регистрация на сервереbool Register(string ServerIP, string login, string pass);

//функция, принимающая данные от сервера

private void ListeningFunction();

public void Send(string str);//отправка сообщений серверу

public void Disconnect();//отключение от сервера

public bool Connected();//проверка статуса подключения

}

Класс Client реализует взаимодействие и обмен данными с сервером.

Класс Controllerclass Controller

{Client chat; //указатель на обьект Client MainForm mainForm;//указатель на главную форму

private FileTrasferer transferer;//обьект для передачи файлаstring filename;//имя передаваемого файлаstring transferUser;//кому передавать файлlong fileSize;//размер файлаStream stream;//поток чтени/записи файлаfileTransfering transferStatus;//статус передачиstring serverIP;//IP сервера для подключения

//конструктор управляющего обьекта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);

//отмена передачи файлаvoid CancelTransferRequest();

//информирование пользователя о ходе передачиvoid ShowTransferProgress(int n, long totalSize);

//завершение передачи файлаvoid FinishTransferFile(bool success);

//отмена передачи файлаvoid AbortTransfer();

//отослать сообщение в общую комнату

public void SendAll(string str);

//отослать сообщение в приватную комнатуvoid SendPrivate(string target, string str);

//передача файлаvoid SendFileRequest(string target);

//вернуть статус подключения

public bool ChatConnected();

//отключиться от сервера

public void ChatDisconnect();

//вернуть имя пользователя

public string GetNameClient();

//вернуть IP сервера, к которому подключен клиент, необходимо //для информирования пользователя

public string GetServerIP();

}

Класс Controller является главным в программе, он отслеживает состояние клиента, обмен клиентом данными с сервером и реализует взаимодействие с интерфейсом программы. Так же с помощью данного класса производится вывод информации в общую и приватные комнаты.

Класс MainFormpartial class MainForm : Form

{Controller brain;//управляющий обьектList tabs;//коллекция приватных комнат FileTransferForm transferForm;//форма для //информирования пользователя о ходе передачи файла

private Icon icon1; //иконки треяIcon icon2; MainForm();//конструктор главной формы

//подключение к серверу, создание обектов Controller и Client

private void подключениеToolStripMenuItem_Click(object sender, EventArgs e);string getMd5Hash(string input); //вычисление хеша пароля

//установить указатель на управляющийобьектvoid setController(Controller controller);

//вызов метода Connect обьекта Controllervoid Login(string serverIP, string login, string pass);

//вызов метода Register обьекта Controllervoid Register(string serverIP,string login, string pass);

//добавление сообщения в главную комнатуvoid UpdateMainWindow(string str, bool alarm);

//обновление списка собеседниковvoid UpdateUserlist(string userlist);

//обработка начжатия клавиши отправки сообщенияvoid sendButton_Click(object sender, EventArgs e);

//обработка отключения от сервераvoid OnDisconnect(string reason);

//корректное завершение программы при закрытии гдавной //формы

private void MainForm_FormClosing(object sender, FormClosingEventArgs e);

//отключение от сервера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);

//показать созданную приватную комнатуvoid mainTabControl_SelectedIndexChanged(object sender, EventArgs e);

//доступность элементов управления взависимости от состояния //подключения

public void ChangeStateButton(bool b);void AbortTransfer();//отмена передачи файлаvoid SetOpportunitySending(bool opportunity);

//обработка свертывания в трейvoid MainForm_SizeChanged(object sender, EventArgs e);

//информирование пользователя о сообщении, когда главное //окно свернуто в трей

public void startAlarm();void stopAlarm();

//разворачивание из треяvoid notifyIcon1_MouseClick(object sender, MouseEventArgs e);void MainForm_Activated(object sender, EventArgs e);

//вызов О Программеvoid оПрограммеToolStripMenuItem_Click(object sender, EventArgs e);

//создание приватной комнатыvoid button1_Click(object sender, EventArgs e);

}

Класс MainForm реализует взаимодействие между пользователем и программой.

Когда пользователь подключается к серверу, если подключение прошло удачно, создается объект класса Controller, в котором создается объект класса Client. В данном объекте есть функция, которая слушает команды от сервера, которые передает на обработку объекту Controller. При запуске программы создается объект класса MainForm, который осуществляет взаимодействие между интерфейсом и управляющим объектом класса Controller/

Руководство пользователя. Требования к программному и аппаратному обеспечению

Рекомендуемые системные требования:

Операционная системаWindows ME/2K/XP/Seven/Ubuntu

ВидеоSVGA (800x600, 65536 цветов)

Процессорx86-совместимый 600 MHz

Опера