Разработка программы "Сетевой чат"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
полученную команду и производит ответные действия. Объект класса 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
Опера