Стек протоколов TCP/IP. Передача данных по сети средствами стека протоколов TCP/IP. Стек протоколов TCP/IP, разработка приложения для передачи данных по сети

Страницы работы

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

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

 МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение образования

«Гомельский государственный технический университет имени П. О. Сухого»

Факультет автоматизированных и информационных систем

Кафедра «Информационные технологии»

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №7

по дисциплине «Компьютерные сети»

на тему: «Стек протоколов TCP/IP. Передача данных по сети средствами стека протоколов TCP/IP»

Выполнил: студент группы ИТ-32

Проверил ассистент:

Дата сдачи отчета __________________

Дата допуска к защите ______________

Дата защиты ______________________

Гомель 2013


Цель: Изучить стек протоколов TCP/IP, разработать приложение для передачи данных по сети.

Задание:

1. Разработать программное обеспечение, реализующее передачу данных между компьютерами на уровне стека протоколов TCP/IP средствами .Net.

2. Используя возможности стека протоколов TCP/IP организовать обработку информации для нахождения алгебраических дополнений к элементам матрицы размерности N.

Блок схемы алгоритмов представлены на рисунках 1 – 2.

Рисунок 1 – Блок-схема алгоритма Сервера

Рисунок 2 – Блок-схема алгоритма Клиента

Листинг серверного приложения:

class Server

{

static void Main(string[] args)

{

Console.Title = "Лабораторная работа №7 - Серверное приложение";

Server server = new Server();

TcpClient localClient = default(TcpClient);

TcpListener localListener = null;

server.Start(ref localListener);

while (true)

{

localClient = localListener.AcceptTcpClient();

string clientName = server.RecieveData(localClient);

Console.WriteLine("Клиент подключен: " + clientName);

string data = server.RecieveData(localClient);

Console.WriteLine("Матрица полученная от клиента: ");

Matrix bufMatrix = new Matrix(data);

bufMatrix.Print();

string _s_additions = bufMatrix.FindAllAlgAdditions();

server.SendData(_s_additions, localClient);

}

}

private void Start(ref TcpListener localListener)

{

Console.Write("Введите порт: ");

int port = Convert.ToInt32(Console.ReadLine());

localListener = new TcpListener(port);

localListener.Start();

Console.WriteLine("Ожидание клиента...");

}

private void SendData(string data, TcpClient localClient)

{

try

{

NetworkStream nStream = localClient.GetStream();

BinaryWriter bWriter = new BinaryWriter(nStream);

bWriter.Write(data);

}

catch

{

Console.WriteLine("Соединение разорвано!");

}

}

private string RecieveData(TcpClient localClient)

{

try

{

NetworkStream nStream = localClient.GetStream();

BinaryReader bReader = new BinaryReader(nStream);

string data = bReader.ReadString();

nStream.Flush();

return data;

}

catch

{

Console.WriteLine("Соединение разорвано!");

return "";

}

}

}

Листинг клиентского приложения:

class Client

{

static void Main()

{

Console.Title = "Лабораторная работа №7 - Клиентское приложение";

Client client = new Client();

TcpClient localClient = new TcpClient();

client.ConnectToServer(localClient);

Console.Clear();

Matrix myMatrix = new Matrix("А");

myMatrix.Print();

client.SendData(myMatrix.ToString(), localClient);

string _s_algAdditions = client.RecieveData(localClient);

Console.WriteLine("\n\nАлгербаические дополнения элементов матрицы А: ");

Console.WriteLine(_s_algAdditions);

Console.ReadKey(true);

}

private void ConnectToServer(TcpClient localClient)

{

bool connected = false;

while (!connected)

{

Console.Write("Введите адрес сервера: ");

string server = Console.ReadLine();

Console.Write("Введите порт: ");

int port = Convert.ToInt32(Console.ReadLine());

try

{

localClient.Connect(server, port);

SendData(Environment.MachineName, localClient);

connected = true;

}

catch

{

Console.WriteLine("Нет соединения с сервером!\n\n");

connected = false;

}

}

}

private void SendData(string data, TcpClient localClient)

{

try

{

NetworkStream nStream = localClient.GetStream();

BinaryWriter bWriter = new BinaryWriter(nStream);

bWriter.Write(data);

}

catch

{

Console.WriteLine("Соединение с сервером разорвано!");

}

}

private string RecieveData(TcpClient localClient)

{

try

{

NetworkStream nStream = localClient.GetStream();

BinaryReader bReader = new BinaryReader(nStream);

string data = bReader.ReadString();

return data;

}

catch

{

Console.WriteLine("Соединение с сервером разорвано!");

return "";

}

}

}

Тесты:

Тесты серверного приложения представлены на рисунках 3 – 4.

Рисунок 3 – Запуск сервера (ожидание клиента)

Рисунок 4 – Подключение клиента и передача данных

Тесты клиентского приложения представлены на рисунках 5 – 7.

Рисунок 5 – Подключение к серверу

Рисунок 6 – Получение данных от сервера

Рисунок 7 – Данные переданные на сервер

Проверка приложения на корректность вычислений.

Данные для расчета представлены на рисунке 8, а формулы для расчета представлены на рисунке 9.

Рисунок 8 – Данные для проверки

Рисунок 9 – Формулы для расчета

Выводы: В ходе лабораторной работы были получены сведения по использованию стека протоколов TCP/IP, а также разработано приложение для передачи данных по сети на языке C#.

Похожие материалы

Информация о работе

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

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.