Описание 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);

}

//