Без темы
<<  Нет идеальной красоты без некоторой странности пропорций ЗОЛОТОЕ СЕЧЕНИЕ В ФОТОГРАФИИ Новая модель конкурса «Учитель года»  >>
Низкоуровневые операции в ИС
Низкоуровневые операции в ИС
Понятие сокета
Понятие сокета
Понятие сокета
Понятие сокета
Сокеты в C#
Сокеты в C#
Программа - сервер
Программа - сервер
Программа-сервер
Программа-сервер
Сервер
Сервер
Сервер
Сервер
Чтение сообщений
Чтение сообщений
Отправка сообщений
Отправка сообщений
Фрагмент программы-сервера
Фрагмент программы-сервера
Фрагмент программы-сервера
Фрагмент программы-сервера
Фрагмент программы-сервера
Фрагмент программы-сервера
Фрагмент программы-сервера
Фрагмент программы-сервера
Программа-клиент
Программа-клиент
Программа-клиент
Программа-клиент
Программа-клиент
Программа-клиент
Фрагмент программы-клиента
Фрагмент программы-клиента
Фрагмент программы-клиента
Фрагмент программы-клиента
Фрагмент программы-клиента
Фрагмент программы-клиента
Подключение к БД в программе-сервере
Подключение к БД в программе-сервере
Подключение к БД в программе-сервере
Подключение к БД в программе-сервере
//Определение количества полей в записи data=rdr
//Определение количества полей в записи data=rdr
Отправка клиенту результата запроса
Отправка клиенту результата запроса
Получение результата в программе клиента
Получение результата в программе клиента
// Получение от сервера набора данных for (int j=1;j<=rw;j++) {
// Получение от сервера набора данных for (int j=1;j<=rw;j++) {
Отображение данных в программе-клиенте
Отображение данных в программе-клиенте

Презентация на тему: «Низкоуровневые операции в ИС». Автор: Лариса Полякова. Файл: «Низкоуровневые операции в ИС.ppt». Размер zip-архива: 47 КБ.

Низкоуровневые операции в ИС

содержание презентации «Низкоуровневые операции в ИС.ppt»
СлайдТекст
1 Низкоуровневые операции в ИС

Низкоуровневые операции в ИС

Сокеты в C#

2 Понятие сокета

Понятие сокета

Если требуется получить доступ к сетевым операциям низкого уровня, в программе следует использовать класс Socket. Протокол TCP/IP (базовый протокол сети Internet) основывается на соединениях, устанавливаемых между двумя компьютерами, обычно называемых клиентом и сервером. Множество приложений для Internet базируются на использовании протокола TCP/IP. Протокол TCP/IP построен на основе использования сетевых соединений – соединение сначала должно быть установлено, затем осуществляется передача данных, после чего оно разрывается.

3 Понятие сокета

Понятие сокета

Сокеты TCP являются важным понятием в программировании. С их помощью разработчик может создавать свои прикладные протоколы, отличные от HTTP и FTP. Сокеты (socket) – это описатель сетевого соединения с другим приложением. Сокет TCP использует протокол TCP, наследуя все свойства этого протокола. Для создания TCP необходима следующая информация: IP-адрес локальной машины; Номер порта TCP, который использует приложение на локальной машине; IP-адрес машины, с которой устанавливается связь; Номер порта TCP, на который отзывается приложение, ожидающее установления связи.

4 Сокеты в C#

Сокеты в C#

Язык C# поддерживает два типа сетевых соединений: серверные, реализуемые с помощью объектов класса TcpListener; клиентские, реализуемые с помощью объектов класса TcpClient.

5 Программа - сервер

Программа - сервер

Программа – сервер выполняет следующие шаги: Ожидание подключения клиента; Установка соединения с клиентом; Отправка/получение от клиента сообщения; Разрыв соединения и завершение программы.

6 Программа-сервер

Программа-сервер

Необходимо понимать, что серверные приложения запускаются на локальном компьютере. В качестве параметра конструктор класса TcpListener принимается номер порта, который впоследствии и будет прослушиваться программой. Однако объект класса TcpListener позволяет только прослушивать определенный порт компьютера. Любые процессы передачи данных через этот сокет осуществляются с использованием объекта TcpClient. Ообъект TcpClient возвращается методом AcceptTcpClient() класса TcpListener, что обеспечивает сам процесс прослушивания порта.

7 Сервер

Сервер

При создании серверного приложения следует подключить модули: using System.Net; using System.Net.Sockets; Затем использовать класс TcpListener. Объекты этого класса связываются с заданным портом. Int32 port = 13000; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); TcpListener server = new TcpListener(localAddr, port); server.Start();

8 Сервер

Сервер

После связывания программы с портом с помощью вызова метода AcceptTcpClient() можно подключиться к этому порту и начать прослушивание входящих соединений: TcpClient client = server.AcceptTcpClient(); После подключения создается поток входных/выходных сообщений: NetworkStream stream = client.GetStream();

9 Чтение сообщений

Чтение сообщений

Через сокет передается массив байт, который после получения нужно преобразовать в строку. Byte[] bytes = new Byte[256]; String data = null; int i = stream.Read(bytes, 0, bytes.Length); data=System.Text.Encoding.UTF8. GetString(bytes, 0, i);

10 Отправка сообщений

Отправка сообщений

Перед отправкой через сокет строку необходимо преобразовать в массив байт. Byte[] bytes = new Byte[256]; String data = “text”; bytes =System.Text.Encoding.UTF. GetBytes(data); stream.Write(bytes, 0, bytes.Length);

11 Фрагмент программы-сервера

Фрагмент программы-сервера

Try { int32 port = 13200; ipaddress localaddr = ipaddress.Parse("127.0.0.1"); //создание и запуск сервера tcplistener server = new tcplistener(localaddr, port); server.Start(); byte[] bytes = new byte[256]; string data = null;

12 Фрагмент программы-сервера

Фрагмент программы-сервера

While(true) { //прослушивание порта и ожидание подключения tcpclient client = server.Accepttcpclient(); data = null; //произошло подключение, создается поток сообщений networkstream stream = client.Getstream();

13 Фрагмент программы-сервера

Фрагмент программы-сервера

// Чтение сообщения int i = stream.Read(bytes, 0, bytes.Length); data = system.Text.Encoding.Utf8.Getstring(bytes, 0, i); //преобразование данных data = data.Toupper(); //отправка сообщения byte[] msg = system.Text.Encoding.Utf8.Getbytes(data); stream.Write(msg, 0, msg.Length);

14 Фрагмент программы-сервера

Фрагмент программы-сервера

//Завершение работы с потоком сообщений client.Close(); }//end while }// end try catch(socketexception ex) { // ошибки соединения }

15 Программа-клиент

Программа-клиент

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

16 Программа-клиент

Программа-клиент

Для подключения к серверу используется конструктор, параметрами которого служат IP-адрес серверной программы и порт, который сервер прослушивает: TcpClient client = new TcpClient(server, port); Затем, после подключения к серверу, аналогично серверной программе, создается поток входных/выходных сообщений: NetworkStream stream = client.GetStream();

17 Программа-клиент

Программа-клиент

Можно отправить сообщение серверу, предварительно преобразовав строку в массив байт: Byte[] bytes = System.Text.Encoding.UTF8.GetBytes(message); stream.Write(bytes, 0, bytes.Length); Или получить сообщение от сервера, преобразовав массив байт в строку: bytes = new Byte[256]; String responseData = String.Empty; Int32 i = stream.Read(bytes, 0, bytes.Length); responseData = System.Text.Encoding.ASCII.GetString(bytes, 0, i);

18 Фрагмент программы-клиента

Фрагмент программы-клиента

void Connect(String server, String message, Int32 port) { try { // Подключение к серверу TcpClient client = new TcpClient(server, port); // Создание потока сообщений NetworkStream stream = client.GetStream(); // Отправка сообщения Byte[] bytes = System.Text.Encoding.ASCII.GetBytes(message); stream.Write(bytes, 0, bytes.Length);

19 Фрагмент программы-клиента

Фрагмент программы-клиента

Bytes = new byte[256]; string responsedata = string.Empty; // получение сообщения int32 i = stream.Read(bytes, 0, bytes.Length); responsedata = system.Text.Encoding.Utf8.Getstring(bytes, 0, i); client.Close(); } catch (exception e) { // ошибка соединения } }// end connection

20 Фрагмент программы-клиента

Фрагмент программы-клиента

Пример соединения с программой-сервером. Connect(“localhost”,”text”,13000); Connect(“192.168.112.1”,”text”,13200);

21 Подключение к БД в программе-сервере

Подключение к БД в программе-сервере

Try { this.Odbcconnection1.Open(); // использование полученного от клиента сообщения в качестве параметра запроса this.Odbccommand1.Parameters["p1"].Value=data; rdr=this.Odbccommand1.Executereader(); } catch(exception exx) { … }

22 Подключение к БД в программе-сервере

Подключение к БД в программе-сервере

While(rdr.Read()) // подсчет количества записей { rw++; } rdr.Close(); data=rw.Tostring(); // отправка клиенту количества записей byte[] msg = system.Text.Encoding.Ascii.Getbytes(data); stream.Write(msg, 0, msg.Length); rdr=this.Odbccommand1.Executereader(); data=result;

23 //Определение количества полей в записи data=rdr

//Определение количества полей в записи data=rdr

Fieldcount.Tostring(); // отправка клиенту количества полей в записи msg = system.Text.Encoding.Ascii.Getbytes(data); stream.Write(msg, 0, msg.Length);

24 Отправка клиенту результата запроса

Отправка клиенту результата запроса

while (rdr.Read()) { data=rdr["tovar"].ToString(); msg = System.Text.Encoding.ASCII.GetBytes(data); stream.Write(msg, 0, msg.Length); data=rdr["tip"].ToString(); msg = System.Text.Encoding.ASCII.GetBytes(data); stream.Write(msg, 0, msg.Length); }

25 Получение результата в программе клиента

Получение результата в программе клиента

//Получение от сервера числа записей Byte[] data2 = new Byte[256]; Int32 bytes2 = stream.Read(data2, 0, data2.Length); int rw= Convert.ToInt32(System.Text.Encoding.ASCII.GetString(data2, 0, bytes2)); // Получение от сервера количества полей в записи Byte[] data1 = new Byte[256]; Int32 bytes1 = stream.Read(data1, 0, data1.Length); int col= Convert.ToInt32(System.Text.Encoding.ASCII.GetString(data1, 0, bytes1));

26 // Получение от сервера набора данных for (int j=1;j<=rw;j++) {

// Получение от сервера набора данных for (int j=1;j<=rw;j++) {

DataRow r=this.dataSet1.Tables[0].NewRow(); for (int i=0;i<col;i++) { bytes = stream.Read(data, 0, data.Length); responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); Console.WriteLine("Received: {0}", responseData); r[i]=responseData; } this.dataSet1.Tables[0].Rows.Add(r); }

27 Отображение данных в программе-клиенте

Отображение данных в программе-клиенте

Connect(this.textBox2.Text,this.textBox1.Text,13000); Connect(this.textBox2.Text,this.textBox1.Text,13200); this.dataGrid1.SetDataBinding( this.dataSet1,"Table1");

«Низкоуровневые операции в ИС»
http://900igr.net/prezentacija/informatika/nizkourovnevye-operatsii-v-is-116545.html
cсылка на страницу
Урок

Информатика

130 тем
Слайды
900igr.net > Презентации по информатике > Без темы > Низкоуровневые операции в ИС