Разработка клиентского и серверного приложения по организации чата с применением протокола TCP на платформе WIN 32

Требования, предъявленные к полноценному локальному чату. Протокол передачи данных TCP. Описание программы сервера. Этапы разработки программного продукта. Функция приема сообщений от сервера. Принятие и отправка сообщений всем пользователям чата.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 21.01.2016
Размер файла 447,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

ОСНОВНАЯ ЧАСТЬ

Требования к приложению

Анализ исходных данных

Разработка приложения

Описание программы сервера

Описание программы клиента

Заключение

Список литературы

Приложение

Введение

Вопросы общения интересовали людей всегда. Для того, чтобы можно было обмениваться информацией не только при личной встрече, но и на огромных расстояниях, люди изобретали всё новые и новые технические средства, организовывали почтовые системы, протягивали кабели через континенты и океаны, запускали спутники связи. С развитием информационных технологий стали возможным еще более глобальные коммуникации. Историческим «докомпьютерным» предшественником чатов, несомненно, был телефон. Ни почта, ни телеграф не позволяли общаться в реальном времени и не были доступны в домашней обстановке. Изобретение и распространение телефона по планете вызвало настоящую революцию в средствах и способах общения. Возможность поговорить с собеседником на другой стороне Земли казалась настоящим чудом.

Программы для обмена текстовыми строками, несмотря на простоту самой идеи, появились не сразу. Базовым для них является единый протокол - TCP. TCP -- один из основных протоколов передачи данных Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP. Выполняет функции протокола транспортного уровня в стеке протоколов IP. Интерфейсом прикладного программирования для сетевых приложений TCP/IP являются сокеты. Сокет - название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет - абстрактный объект, представляющий конечную точку соединения. Сокет - это комбинация IP-адреса и порта. Каждый процесс может создать слушающий сокет (серверный сокет) и привязать его к какому-нибудь порту операционной системы. Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения. Для нас это означает, что сервер будет слушать какой-либо порт и после подключения клиента, будем производить с ним какие-то действия.

Основанием для разработки программы послужила идея проверить свои возможности по написанию программы работающей с сетью, такой как сетевой чат.

Чат -- средство обмена сообщениями по компьютерной сети в режиме реального времени, а также программное обеспечение, позволяющее организовывать такое общение. Характерной особенностью является коммуникация именно в реальном времени или близкая к этому, что отличает чат от форумов и других «медленных» средств. То есть, если на форуме можно написать вопрос и ждать, пока кто-нибудь посчитает нужным на него ответить (в то же время, можно получить и несколько ответов сразу от разных пользователей), то в чате общение происходит только с теми, кто присутствует в нём в настоящий момент, а результаты обмена сообщениями могут и не сохраняться.

Под словом чат обычно понимается групповое общение, хотя к ним можно отнести и обмен текстом «один на один» посредством программ мгновенного обмена сообщениями, например, XMPP, ICQ или даже SMS.

Основная цель - создания сетевого чата - мгновенный обмен сообщениями. Использование данного программного продукта поможет сократить время выполнения какой-либо работы или просто хорошо провести время, общаясь в кругу друзей.

Сетевой чат может быть использован как для малого круга людей, т.е. в домашних условиях, так и на производстве небольшого предприятия.

Перечень задач, подлежащих разработке в курсовой работе:

- Сетевой чат должен обеспечивать мгновенный обмен сообщениями, быть полезным в использовании и потреблять наименьшее количество ресурсов персонального компьютера;

- Программный продукт должен иметь дружественный интерфейс, не требующий специальной подготовки пользователей, должен способствовать более эффективному распределению и экономии времени;

Данная работа будет реализована на языке C# и С++ в среде разработки Microsoft Visual Studio 2013.

ОСНОВНАЯ ЧАСТЬ

Требования к приложению

При разработке курсовой работы были учтены требования, предъявленные к полноценному локальному чату. Эти требования оптимально нацелены на достижение максимального удовлетворения потребностей пользователя.

Программа имеет название «My_Chat», предназначена как для домашнего использования, так и для использования на малом производстве. Разработана для людей, плохо знающих ПК, программный продукт не требует никаких инструктажей по использованию и понятен на интуитивном уровне.

Для работы с приложением необходимо наличие локального соединения. Оно необходимо для целенаправленного использования программного продукта, так как при его отсутствии программный продукт становиться бесполезным.

Интерфейс программы должен способствовать снижению количества ошибок, вызванных неправильными действиями пользователей системы, а также система должна осуществлять контроль над вводимыми данными.

Надежность программы в целом зависит от надежности используемой операционной системы. Для обеспечения устойчивого состояния программного средства необходимо проверять корректность входных и выходных данных. Категорически запрещается удалять или подвергать каким-либо действия файлы программы.

Основной задачей данного проекта является обеспечивать мгновенную связь двух и нескольких людей одновременно, путем передачи небольшого количества информации непосредственно друг другу.

В качестве входных данных в программе-клиенте являются:

· «Никнейм» пользователя, под которым он будет известен в чате;

· Виртуальный адрес компьютера, на котором запущен сервер;

· Текстовая информация, вводимая самим пользователем.

Выходными данными является текстовая информация, передаваемая самими пользователями, а также их псевдонимы.

Анализ исходных данных

Любая сетевая программа имеет свой протокол передачи данных.

Протокол передачи данных - набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами. Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок при взаимодействии программного обеспечения разнесённой в пространстве аппаратуры, соединённой тем или иным интерфейсом.

Сетевой протокол -- набор правил и действий (очерёдности действий), позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть устройствами.

Примеры сетевых протоколов:

· TCP/IP -- набор протоколов передачи данных, получивший название от двух принадлежащих ему протоколов: TCP и IP.

· HTTP (Hyper Text Transfer Protocol) -- это протокол передачи гипертекста. Протокол HTTP используется при пересылке Web-страниц между компьютерами, подключенными к одной сети.

· FTP (File Transfer Protocol) -- это протокол передачи файлов со специального файлового сервера на компьютер пользователя. FTP дает возможность абоненту обмениваться двоичными и текстовыми файлами с любым компьютером сети. Установив связь с удаленным компьютером, пользователь может скопировать файл с удаленного компьютера на свой или скопировать файл со своего компьютера на удаленный.

· POP (Post Office Protocol) -- это стандартный протокол почтового соединения. Серверы POP обрабатывают входящую почту, а протокол POP предназначен для обработки запросов на получение почты от клиентских почтовых программ.

· SMTP (Simple Mail Transfer Protocol) -- протокол, который задает набор правил для передачи почты. Сервер SMTP возвращает либо подтверждение о приеме, либо сообщение об ошибке, либо запрашивает дополнительную информацию.

· TELNET -- это протокол удаленного доступа. TELNET дает возможность абоненту работать на любой ЭВМ находящейся с ним в одной сети, как на своей собственной, то есть запускать программы, менять режим работы и так далее. На практике возможности ограничиваются тем уровнем доступа, который задан администратором удаленной машины.

Перед реализацией программы было решено обмениваться информацией по протоколу передачи данных: TCP.

TCP имеет важное преимущество: гарантирует целостность доставки пакета до адресата.

Разработка приложения

Можно выделить основные этапы разработки программного продукта:

1. Этап проектирования интерфейса программы;

2. Этап написание программного кода;

3. Этап доработки, внесения изменений;

4. Этап формирования конечного продукта.

На первом этапе проектирования создается общий интерфейс программного продукта и создается его функциональная поддержка.

Этап задания обучающего материала включает в себя:

· Создание определенного макета программы;

· Создание интерфейса управления;

· Разработка оформления.

В результате проектирования выше изложенной части работы программный продукт должен поддерживать следующие функции:

· Ввод текстовой информации и ее изменение до отправки;

· Быстродействие и удобство пользования интерфейсом.

Этап написания программного кода:

· Выбор и анализ методов написания алгоритма выполнения программы;

· Написание основных функций;

· Внесение исправлений и настройка программы.

Описание программы сервера

локальный чат сервер программный

Программа выполняет следующие функции:

· Контролирует подключение пользователей и их количество;

· Получает сообщения от каждого пользователя;

· Передаёт сообщения от одного пользователя в общий чат.

В главной функции сервера задаются настройки сервера, принятие и отправка сообщений всем пользователям чата. Помимо этого, ведется протоколирование всего происходящего и выводится на консоль (Рис. 1).

Рис. 1

Настройки сервера:

server.ai_family = AF_INET;

server.ai_flags = AI_PASSIVE;

server.ai_socktype = SOCK_STREAM;

server.ai_protocol = IPPROTO_TCP;

getaddrinfo(NULL, "8888", &server, &result);

8888 - номер порта, с которым будет работать чат.

Создание потока, в котором происходит отправка сообщений:

CreateThread(NULL, NULL, (PTHREAD_START_ROUTINE)SendMessageToClient, (LPVOID)(ClientCount - 1), NULL, NULL);

Слушающий сокет:

Listen = socket(result->ai_family, result->ai_socktype, result->ai_protocol);

bind(Listen, result->ai_addr, result->ai_addrlen);

Следующий метод отвечает за отправку сообщений:

void SendMessageToClient(int ID)

{

char* buffer = new char[1024];

for (;; Sleep(100))

{

memset(buffer, 0, sizeof(buffer));

if (recv(Connections[ID], buffer, 1024, NULL))

{

printf("%s", buffer);

for (int i = 0; i <= ClientCount; i++)

{

send(Connections[i], buffer, strlen(buffer), NULL);

}

}

}

free(buffer);

}

Описание программы клиента

При запуске программы клиента отображается окно, в котором необходимо заполнить два поля. Первое из них нужно для соединения с сервером и требует правильного заполнения, второе нужно для инициализации пользователя и может быть заполнено по усмотрению самого пользователя (Рис. 2).

Рис. 2

Помимо этого, в этом же окне присутствует CheckBox, который восстанавливает значение IP адреса, введенного в прошлый раз, тем самым облегчая ввод. (Рис. 3)

Рис. 3

Ниже приведена реализация данной функции:

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

try

{

if (checkBox1.Checked)

{

var sr = new StreamReader(@"Chat_Info/nastroyki.txt");

string buffer = sr.ReadToEnd();

sr.Close();

string[] ip = buffer.Split(':');

textBox1.Text = ip[0];

checkBox1.Enabled = false;

}

}

catch (Exception ex)

{

MessageBox.Show("Ошибка: " + ex.Message);

}

}

Так же в правом нижнем углу есть изображение, в виде знака вопроса, при нажатии на которое отображается инструкция для пользователя. (Рис. 4)

Рис. 4

В нижней части окна находится кнопка «Войти в чат!», при нажатии на которую закрывается данное окно и открывается новое, в котором происходит подключении к серверу по заданным ранее настройкам.

private void button1_Click(object sender, EventArgs e)

{

if (textBox1.Text != " " && textBox1.Text != "" && textBox2.Text != " " && textBox2.Text != "")

{

try

{

DirectoryInfo data = new DirectoryInfo("Chat_Info");

data.Create();

var sw = new StreamWriter(@"Chat_Info/nastroyki.txt");

sw.WriteLine(textBox1.Text + ":" + textBox2.Text);

sw.Close();

this.Hide();

Form1 form = new Form1();

form.Show();

}

catch (Exception ex)

{

MessageBox.Show("Ошибка: " + ex.Message);

}

}

else MessageBox.Show("Заполните все поля!");

}

При этом, если оба или одно из полей осталось пустым, на экран будет выведено соответствующее сообщение. (Рис. 5)

Рис. 5

Если IP адрес сервера был введён корректно, то в окне приложения зелёным цветом будет отображаться именно этот IP адрес (Рис. 6).

Рис. 6

В противном случае, будет выведена надпись об отсутствии настроек и появится кнопка, с помощью которой можно заново ввести настройки (Рис. 7).

Рис. 7

Если выведена зелёная надпись IP адреса и в листинге чата написано «Connect…», соответственно пользователь успешно подключился и может начать писать своё сообщение в нижнем поле для ввода текста. Для отправки сообщения нужно нажать кнопку «Отправить» либо нажать кнопку «Enter» на клавиатуре.

private void button1_Click_1(object sender, EventArgs e)

{

SendMessage("\n" + nik + ": " + textBox2.Text + "**8");

textBox2.Clear();

}

В Меню приложения есть кнопка «Автор», при нажатии на которую выводится информация о разработчике приложения (Рис. 8).

Рис. 8

Для выхода из чата нужно выбрать пункт из меню «Выход», после чего в листинге чата, пользователь будет проинформирован о том, что он вышел из чата (Рис. 9). При этом, если он выбрал этот пункт меню до того, как вошел в чат, то также будет выведено соответствующее сообщение. (Рис. 7)

Рис. 9

private void выходToolStripMenuItem_Click_1(object sender, EventArgs e)

{

if (th != null) th.Abort();

if (Client != null)

{

Client.Close();

textBox2.Enabled = false;

button1.Enabled = false;

label5.Enabled = false;

listBox1.Items.Add("Вы вышли из чата...");

}

else listBox1.Items.Add("Вы ещё не зашли в чат!");

}

Функция отправки сообщения серверу выглядит следующим образом:

void SendMessage(string message)

{

if (message != " " && message != "")

{

byte[] buffer = new byte[1024];

buffer = Encoding.UTF8.GetBytes(message);

Client.Send(buffer);

}

}

Функция приёма сообщений от сервера:

void RegOfMessage()

{

byte[] buffer = new byte[1024];

for (int i = 0; i < buffer.Length; i++)

{ buffer[i] = 0; }

for (; ; )

{

try

{

Client.Receive(buffer);

string messege = Encoding.UTF8.GetString(buffer);

int count = messege.IndexOf("**8");

if (count == -1)

{ continue; }

string Clean_Mes = "";

for (int i = 0; i < count; i++)

{ Clean_Mes += messege[i]; }

for (int i = 0; i < buffer.Length; i++)

{ buffer[i] = 0; }

this.Invoke((MethodInvoker)delegate()

{ listBox1.Items.Add(Clean_Mes); });

}

catch (Exception ex) { }

}

}

Подключение клиента реализуется следующим образом:

Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

if (ip != null)

{

Client.Connect(ip, port);

th = new Thread(delegate() { RegOfMessage(); });

th.Start();

}

Заключение

В результате выполнения курсового проекта были разработаны следующие приложения: сервер и клиент. Также были решены все задачи и достигнута цель. Целью данной работы было разработать сетевое приложение. Данное приложение позволяет удалённо обмениваться информацией по локальной или беспроводной сети.

Были получены навыки и умения в следующих сферах:

· Программирование на языках C# и С++;

· Работа с сокетами;

· Применение протокола TCP;

· Использование потоков.

Представленная версия приложения является законченным программным продуктом. Однако она может быть доработана, для чего понадобятся дополнительные средства, а также время, в течение которого будут исправляться все недочеты, которые пропустил или не посчитал нужным реализовывать разработчик.

Данный программный продукт может быть использован как в домашних условия, так и в условиях производства.

В заключении хотелось бы отметить, что интерфейс на клиенте выполнен в наиболее удобном и простом варианте, что позволяет пользователю комфортно работать с приложением.

Список литературы

1. Брагин И. «Построение сетей» - СПб.: Питер, 2010. - 480 с.: ил.

2. Карпов Б., Баранов Т. «С++: специальный справочник» - СПб.: Питер, 2001. - 480 с.: ил.

3. Культин Н. «С# в задачах и примерах» - СПб.: БХВ-Петербург, 2002. - 288 с.

4. Петров Б., Алексеев Т. «С#» - Москва, 2011. - 370 с.: ил.

5. Шилдт Г. «Самоучитель С#» - СПб.: БХВ-Петербург. 2001. - 670с.

Приложение

My_Server.cpp:

#pragma comment(lib,"Ws2_32.lib")

#include <WinSock2.h>

#include <iostream>

#include <WS2tcpip.h>

SOCKET Connect;

SOCKET* Connections;

SOCKET Listen;

int ClientCount = 0;

void SendMessageToClient(int ID)

{

char* buffer = new char[1024];

for (;; Sleep(100))

{

memset(buffer, 0, sizeof(buffer));

if (recv(Connections[ID], buffer, 1024, NULL))

{

printf("%s", buffer);

for (int i = 0; i <= ClientCount; i++)

{

send(Connections[i], buffer, strlen(buffer), NULL);

}

}

}

free(buffer);

}

int main()

{

setlocale(LC_ALL, "russian");

WSAData data;

WORD version = MAKEWORD(2, 2);

int res = WSAStartup(version, &data);

if (res != 0)

{

return 0;

}

struct addrinfo server;

struct addrinfo * result;

Connections = (SOCKET*)calloc(64, sizeof(SOCKET));

ZeroMemory(&server, sizeof(server));

server.ai_family = AF_INET;

server.ai_flags = AI_PASSIVE;

server.ai_socktype = SOCK_STREAM;

server.ai_protocol = IPPROTO_TCP;

getaddrinfo(NULL, "8888", &server, &result);

Listen = socket(result->ai_family, result->ai_socktype, result->ai_protocol);

bind(Listen, result->ai_addr, result->ai_addrlen);

listen(Listen, SOMAXCONN);

freeaddrinfo(result);

char conect[] = "Connect...**8";

char kol[] = "All users: ";

printf("Server connect...\n");

printf(kol);

printf("%d", ClientCount);

for (;; Sleep(100))

{

if (Connect = accept(Listen, NULL, NULL))

{

printf("\nClient connect...\n");

printf(kol);

printf("%d", ClientCount + 1);

Connections[ClientCount] = Connect;

send(Connections[ClientCount], conect, strlen(conect), NULL);

ClientCount++;

CreateThread(NULL, NULL, (PTHREAD_START_ROUTINE)SendMessageToClient, (LPVOID)(ClientCount - 1), NULL, NULL);

}

}

return 1;

}

MyChat_Client

Form1.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Net.Sockets;

using System.IO;

using System.Net;

using System.Threading;

namespace MyChat_Client

{

public partial class Form1 : Form

{

static private Socket Client;

private IPAddress ip = null;

private int port = 8888;

private string nik;

private Thread th;

public Form1()

{

InitializeComponent();

textBox2.Enabled = false;

button1.Enabled = false;

label5.Enabled = false;

try

{

var sr = new StreamReader(@"Chat_Info/nastroyki.txt");

string buffer = sr.ReadToEnd();

sr.Close();

string[] info = buffer.Split(':');

ip = IPAddress.Parse(info[0]);

nik = info[1];

label4.ForeColor = Color.Green;

label4.Text = " Подключение по IP сервера: " + info[0];

Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

if (ip != null)

{

Client.Connect(ip, port);

th = new Thread(delegate() { RegOfMessage(); });

th.Start();

button1.Enabled = true;

textBox2.Enabled = true;

label5.Enabled = true;

listBox1.Items.Add(nik + " присоединился!");

}

}

catch (Exception ex)

{

label4.ForeColor = Color.Red;

label4.Text = "Настройки не найдены\nВведите заново!";

button2.Visible = true;

}

}

void SendMessage(string message)

{

if (message != " " && message != "")

{

byte[] buffer = new byte[1024];

buffer = Encoding.UTF8.GetBytes(message);

Client.Send(buffer);

}

}

void RegOfMessage()

{

byte[] buffer = new byte[1024];

for (int i = 0; i < buffer.Length; i++)

{ buffer[i] = 0; }

for (; ; )

{

try

{

Client.Receive(buffer);

string messege = Encoding.UTF8.GetString(buffer);

int count = messege.IndexOf("**8");

if (count == -1)

{ continue; }

string Clean_Mes = "";

for (int i = 0; i < count; i++)

{ Clean_Mes += messege[i]; }

for (int i = 0; i < buffer.Length; i++)

{

buffer[i] = 0;

}

this.Invoke((MethodInvoker)delegate()

{

listBox1.Items.Add(Clean_Mes);

});

}

catch (Exception ex) { }

}

}

private void авторToolStripMenuItem_Click_1(object sender, EventArgs e)

{

MessageBox.Show("Булычёв Вячеслав \n ДБО - 481 \n 2015г");

}

private void button1_Click_1(object sender, EventArgs e)

{

SendMessage("\n" + nik + ": " + textBox2.Text + "**8");

textBox2.Clear();

}

private void textBox2_KeyDown(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

SendMessage("\n" + nik + ": " + textBox2.Text + "**8");

textBox2.Clear();

}?

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void button2_Click(object sender, EventArgs e)

{

this.Hide();

Form3 form = new Form3();

form.Show();

}

private void выходToolStripMenuItem_Click_1(object sender, EventArgs e)

{

if (th != null) th.Abort();

if (Client != null)

{

Client.Close();

textBox2.Enabled = false;

button1.Enabled = false;

label5.Enabled = false;

listBox1.Items.Add("Вы вышли из чата...");

}

else listBox1.Items.Add("Вы ещё не зашли в чат!");

}

}

}

Form3.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.IO;

using System.Windows.Forms;

namespace MyChat_Client

{

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

if (textBox1.Text != " " && textBox1.Text != "" && textBox2.Text != " " && textBox2.Text != "")

{

try

{

DirectoryInfo data = new DirectoryInfo("Chat_Info");

data.Create();

var sw = new StreamWriter(@"Chat_Info/nastroyki.txt");

sw.WriteLine(textBox1.Text + ":" + textBox2.Text);

sw.Close();

this.Hide();

Form1 form = new Form1();

form.Show();

}

catch (Exception ex)

{

MessageBox.Show("Ошибка: " + ex.Message);

}

}

else MessageBox.Show("Заполните все поля!");

}

private void pictureBox1_Click(object sender, EventArgs e)

{

MessageBox.Show("Для начала общения с другими пользователями Вам необходимо ввести IP сервера и свой Ник, нажать кнопку ' Войти в чат! ' или кнопку ' Enter ', после чего вы сможете обмениваться сообщениями. Для выхода из чата нужно выбрать пункт ' Выход ' в меню, либо закрыть приложение");

}

private void textBox2_KeyDown(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

if (textBox1.Text != " " && textBox1.Text != "" && textBox2.Text != " " && textBox2.Text != "")

{

try

{

DirectoryInfo data = new DirectoryInfo("Chat_Info");

data.Create();

var sw = new StreamWriter(@"Chat_Info/nastroyki.txt");

sw.WriteLine(textBox1.Text + ":" + textBox2.Text);

sw.Close();

this.Hide();

Form1 form = new Form1();

form.Show();

}

catch (Exception ex)

{

MessageBox.Show("Ошибка: " + ex.Message);

}

}

else MessageBox.Show("Заполните все поля!");

}?

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

try

{

if (checkBox1.Checked)

{

var sr = new StreamReader(@"Chat_Info/nastroyki.txt");

string buffer = sr.ReadToEnd();

sr.Close();

string[] ip = buffer.Split(':');

textBox1.Text = ip[0];

checkBox1.Enabled = false;

}

}

catch (Exception ex)

{

MessageBox.Show("Ошибка: " + ex.Message);

}

}

}

}

Размещено на Allbest.ru


Подобные документы

  • История возникновения чата. Виды программной реализации чатов. Описание приложения TCP/IP, построенного на клиент-серверной архитектуре. Особенности создания многопользовательского чата (Multy-user on-line). Листинг программного продукта онлайн общения.

    курсовая работа [657,0 K], добавлен 01.03.2010

  • Протокол для поддержания системы передачи сообщений, обеспечение непрерывной работы SMTP-сервера. Примеры использования команды LIST, работа через протокол POP3, особенности авторизации. Условия работы режима "обновление". Пример сеанса с POP3 сервером.

    реферат [16,1 K], добавлен 03.05.2010

  • Характеристика разновидностей программной реализации чатов. Разработка программы клиент-серверного чата с возможность общения в локальной сети нескольких человек одновременно. Протокол взаимодействия клиента и сервера. Порядок работы с программой.

    курсовая работа [530,7 K], добавлен 25.04.2015

  • Методика и основные этапы создания многофункциональной программы получения и отправки сообщений по локальной сети с помощью программного обеспечения Winpopup и Traypopup. Сравнительная характеристика встроенных протоколов и их функциональные особенности.

    дипломная работа [371,6 K], добавлен 19.06.2010

  • Разработка веб-приложений на основе Servlet API. Основные способы передачи данных от пользователя. Краткая справка по необходимым программным компонентам. Составление программы интернет-чата на основе протокола HTTP. Диаграмма классов веб-приложения.

    лабораторная работа [1,1 M], добавлен 01.05.2014

  • Описание и установка интегрированной среды разработки Eclipse. Описание языка Java. Описание классов и методов, пакетов, использованных в программе, сервера и клиента. Разработка руководства пользователя для клиента и сервера. Пример работы чата.

    курсовая работа [443,5 K], добавлен 18.05.2015

  • Анализ предметной области, формулировка общих и специальных требований к информационной системе с адаптивным интерфейсом. Разработка структур данных, программного обеспечения, модуля бизнес-логики, клиентского приложения; администрирование сервера.

    дипломная работа [2,5 M], добавлен 20.07.2014

  • Обоснование необходимости создания приложения для общения в Интернете, информационный анализ его структуры. Логическое проектирование чата. Выбор программной платформы, аппаратных средств и среды разработки. Интерфейс программы и руководство пользователя.

    курсовая работа [287,7 K], добавлен 19.06.2013

  • Основные понятия Proxy-сервера. Принцип сочетания централизации и децентрализации. Выбор протокола для почтового сервера. Синтез глобальных приоритетов. Описание входных и выходных данных. Основные свойства программного продукта, его назначение.

    дипломная работа [1,0 M], добавлен 27.06.2012

  • Спецификация организации службы Short Message Service. Алгоритм работы сервера и возможность расширения функциональных возможностей. Реализация проекта на языке высокого уровня С++ на платформе Linux. Расчет себестоимости и цены программного продукта.

    дипломная работа [168,6 K], добавлен 19.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.