Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3.docx
Скачиваний:
2
Добавлен:
28.08.2019
Размер:
1.35 Mб
Скачать

Министерство образования и науки РФ

Тверской государственный технический университет

Кафедра ЭВМ

Лабораторная работа №3

«Организация удаленного взаимодействия с помощью сокетов.»

Выполнил: Базанов А.Р.

Проверил: Веселов А.А.

Тверь

2012 г.

Цель работы:

Изучение основных принципов построения распределенных Windows-приложений с помощью сокетов на основе потоков и дэйтаграмм и приобретении практических навыков по их разработке и отладке в интегрированной среде Visual Studio..

Задание на лабораторную работу:

  • Взаимодействие на основе потоковых сокетов:

  • В соответствии с методикой, изложенной в разделе 1.4, создать классы клиентского и серверного приложений.

  • Запустить и протестировать работу клиентского и серверного приложений.

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

  • Взаимодействие на основе дэйтаграмм:

  • Ознакомится с основными принципами организации удаленного взаимодействия с помощью дэйтаграмм .

  • На основе описания примера (раздел 1.5.1) создать классы приложений клиента и сервера способных взаимодействовать между собой с помощью дэйтаграмм.

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

  • Составить блок-схему алгоритма работы: клиентского приложения, серверного приложений, алгоритма организации взаимодействия между ними и составить их текстовое описание

  • Многопоточное взаимодействие

  • В соответствии с описанием, представленным в разделе 1.6, создать классы клиентского и серверных приложений для игровой системы.

  • Протестировать работу игровой системы.

Код клиента и сервера на основе потоковых сокетов Код сервера

using System;

using System.IO;

using System.Net;

using System.Net.Sockets;

namespace TcpServer

{

class Program

{

static void Main()

{

TcpListener listner;

TcpClient client;

StreamReader sr;

StreamWriter sw;

String temp;

listner = new TcpListener(IPAddress.Parse("192.168.0.101"), 10000);

listner.Start();

Console.WriteLine("Server started");

client = listner.AcceptTcpClient();

Console.WriteLine("Client connected");

sr = new StreamReader(client.GetStream());

sw = new StreamWriter(client.GetStream());

sw.AutoFlush = true;

sw.WriteLine("Connection established");

Console.WriteLine("Message was sent");

Console.WriteLine("There ara some messages from client:\n");

while ((temp = sr.ReadLine()) != "TERMINATE")

{

Console.WriteLine("Client said " + temp);

}

Console.WriteLine("There are all");

client.Close();

sr.Close();

sw.Close();

Console.ReadLine();

}

}

}

Код клиента

using System;

using System.IO;

using Sock = System.Net.Sockets;

namespace TcpClient

{

class Program

{

static void Main()

{

StreamReader sr;

StreamWriter sw;

var client = new Sock.TcpClient();

client.Connect("192.168.0.101", 10000);

sr = new StreamReader(client.GetStream());

sw = new StreamWriter(client.GetStream());

sw.AutoFlush = true;

Console.WriteLine(sr.ReadLine());

sw.WriteLine("Hello, it's client!");

sw.WriteLine("buy!!");

sw.WriteLine("TERMINATE");

Console.ReadLine();

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]