Описание Windows-программы "Messenger"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
87;
Модуль формы About содержит информацию о программе и разработчике.
Рисунок 4. Вид формы About
3. Кодирование программы
При кодировании программ, типа клиент - сервер следует обратить внимание на сетевой ввод/вывод, основанный на потоках , создаваемых с помощью сокетов.
Сокет - это объект, представляющий конечную точку коммуникаций двух процессов, связанных между собой через сеть. Сокеты могут работать с различными протоколами, включаю UDP и TCP/IP. Данная программа осуществляет соединение клиента и сервера по протоколу TCP/IP.
Чтобы создать сетевой сервер для потока данных , следует вначале создать объект TcpListener, который будет считывать информацию указонного порта TCP/IP.
//создаем объект для считывания информации с портаtcpListener = new TcpListener(ipA [0],8001);
//запускаем порт на прослушку.Start();
Теперь будем ждать, пока какой- нибудь клиент не запросит соединение:
Socket socketForClient = tcpListener.AcceptSocket();
Если соединение с клиентом установлено,
if (socketForClient.Connected)
то вызовем функцию объекта networkStrem.BeginRead, класса NetworkStream для приема сообщений:
networkStrem.BeginRead(, //куда помещать результат
, //смещение.Length , //размер буффера, //делегат обратного вызова); //локальный объект состояния
Текст программы клиента весьма прост. Клиент создает cокет tcpSocket для порта, прослушиваемого сервером, и объект класса NetworkStream для это сокета. Затем он выводит сообщение в поток и освобождает буфер:
System.IO.StreamWriter writer = new System.IO.StreamWriter(streamToServer);.WriteLine(message);.Flush();
Наиболее подробно вся логика по созданию соединения сервера с клиентом отражена на рисунке 5.
Рисунок 5. Блок схема
4. Тестирование и отладка программы
4.1 Разработка методики тестирования и отладка
Продемонстрируем наглядно работу данной программы, оценим правильность выполнения при подключении клиента к серверу, доставки сообщений до сервера и запись их на диске.
Подключение клиента к серверу.
1.Подключение клиента к серверу произойдет только после ввода IP адреса сервера и нажатия кнопки Send.
2.Если IP адрес не задан или задан не верно, то в поле txtMsg появиться сообщение Server not found….
3.Также сообщение Server not found… появиться при попытке приконнектиться к незапущенному серверу.
Рисунок 6. Server not found
Доставка сообщений до сервера и запись их на диск.
Доставка сообщений до сервера осуществляется по протоколу TCP/IP, что гарантирует надежность доставки. На диск этих сообщения записываются в текстовый файл - logs.txt
Рисунок 7. Доставка сообщений до сервера
Рисунок 8. Запись сообщений в текстовый файл
4.2 Результаты тестирования
На всем протяжении создания программы проводились тесты и их результаты тщательно анализировались. В результате было выявлено некорректное поведение программы в двух случаях:
При отправке текста, размер которого превышает размер буфера сервера, а именно 256 byte, сервер выводит на экран часть текста, а клиент, отправивший сообщение подвисает.
Если после отключения клиента, адрес сервера не изменился, то вновь запущенный клиент будет коннектиться к серверу без ввода его IP адреса в поле txtIPserver.
messenger сетевой программа
5. Аттестация
По рассмотренным выше методикам программа тестировалась много раз в течение всего процесса изготовления программного продукта. Некорректное поведение программы должно быть исправлено и доработано, но несмотря на это проведенное тестирование показало, что демо-версия программного продукта отвечает всем заявленным требованиям:
Клиент отправляет сообщения серверу
Сервер принимает сообщения клиента
Сервер сохраняет принятые сообщения на диск
Заключение
В рамках курсовой работы был разработан сетевой messenger. И хотя, вероятность использования данной демо-версии по назначению очень мала, программу можно использовать, как учебный проект, демонстрирующий программирование сетевого ввода/вывода на примере протокола TCP/IP.
В дальнейшем хотелось бы разработать дополнительные возможности мессенджера:
Отправку сообщений с сервера
Отправку сообщений между пользователями и всем пользователям
Windows приложение сервера
Регистрацию пользователей
Просмотр списка пользователей по именам
Автоматическое обновление списка пользователей
Административные функции мессенджера
Улучшить интерфейс клиента
Автоответчик и меню Информация о пользователе
Разработав перечисленные выше методы и реализовав их в программе, messenger может претендовать на широкое использование в локальных сетях.
Список литературы
1.Э. Троелсен. С# и платформа .NET. Библиотека программиста. М. 2004
.Д. Либерти. C#. Создание .Net приложений. Программирование на c# . Символ-Плюс, СП 2003
3.A.Turtschi. C# .NET Web Developers Guide
.E.Butow,T.Ryan C#. Your visual blueprint for building .Net aplications
Приложение
SERVER
using System;System.Collections.Generic;System.Text;System.Net;System.Net.Sockets;System.Threading ;System.IO;class NetworkServer
{clientHandler
{byte[] buffer;Socket socket;NetworkStream networkStrem;AsyncCallback callbackRead;clientHandler(Socket socketForClient)
{
//инициализируем переменную класса= socketForClient;
//инициализируем буфер для хранения сообщений= new byte[256];
//создаем сетевой поток данных= new NetworkStream(socketForClient);
//установить обратный вызов для операции чтения файла= new AsyncCallback(this.onReadComplete);
}
//