🗊Презентация UDP сокеты. Протокол пользовательских дейтаграмм(UDP)

Нажмите для полного просмотра!
UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №1UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №2UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №3UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №4UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №5UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №6UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №7UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №8UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №9UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №10UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №11UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №12UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №13UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №14UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №15UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №16UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №17UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №18UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №19UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №20UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №21UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №22UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №23UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №24UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №25UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №26UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №27UDP сокеты. Протокол пользовательских дейтаграмм(UDP), слайд №28

Содержание

Вы можете ознакомиться и скачать презентацию на тему UDP сокеты. Протокол пользовательских дейтаграмм(UDP). Доклад-сообщение содержит 28 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





UDP сокеты
Описание слайда:
UDP сокеты

Слайд 2





Протокол пользовательских дейтаграмм(UDP)
Протокол UDP намного проще, чем ТСР; он полезен в ситуациях, когда мощные механизмы обеспечения надежности протокола ТСР не обязательны. Заголовок UDP имеет всего четыре поля: 
поле порта источника (source port), 
поле порта пункта назначения (destination port), 
поле длины (length) и 
поле контрольной суммы UDP (checksum UDP). 
Поля порта источника и порта назначения выполняют те же функции, что и в заголовке ТСР. Поле длины обозначает длину заголовка UDP и данных; поле контрольной суммы обеспечивает проверку целостности пакета. Контрольная сумма UDP является факультативной возможностью.
Описание слайда:
Протокол пользовательских дейтаграмм(UDP) Протокол UDP намного проще, чем ТСР; он полезен в ситуациях, когда мощные механизмы обеспечения надежности протокола ТСР не обязательны. Заголовок UDP имеет всего четыре поля: поле порта источника (source port), поле порта пункта назначения (destination port), поле длины (length) и поле контрольной суммы UDP (checksum UDP). Поля порта источника и порта назначения выполняют те же функции, что и в заголовке ТСР. Поле длины обозначает длину заголовка UDP и данных; поле контрольной суммы обеспечивает проверку целостности пакета. Контрольная сумма UDP является факультативной возможностью.

Слайд 3





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

Слайд 4





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

Слайд 5





Использование UDP
В отличие от TCP, данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Размер каждого записанного сообщения будет совпадать с размером соответствующего прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно целое и не делит одно сообщение на части.
Описание слайда:
Использование UDP В отличие от TCP, данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Размер каждого записанного сообщения будет совпадать с размером соответствующего прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно целое и не делит одно сообщение на части.

Слайд 6





Использование UDP и TCP
Альтернатива TCP-UDP позволяет программисту гибко и рационально использовать предоставленные ресурсы, исходя из своих возможностей и потребностей. 
Если нужна надежная доставка, то лучше  использовать TCP. 
Если нужна эффективность на быстрых сетях с короткими соединениями, то - UDP.  
Прикладные программы, конечно, могут устранять некоторые недостатки выбранного протокола. Например, если вы выбрали UDP, а вам необходима надежность, то прикладная программа должна обеспечить надежность сама, как описано выше: требовать подтверждения, пересылки утерянных или увечных пакетов и т.д. Если вы выбрали TCP, а вам нужно передавать записи, то прикладная программа должна вставлять метки в поток байтов так, чтобы можно было различить записи.
Описание слайда:
Использование UDP и TCP Альтернатива TCP-UDP позволяет программисту гибко и рационально использовать предоставленные ресурсы, исходя из своих возможностей и потребностей. Если нужна надежная доставка, то лучше  использовать TCP. Если нужна эффективность на быстрых сетях с короткими соединениями, то - UDP.  Прикладные программы, конечно, могут устранять некоторые недостатки выбранного протокола. Например, если вы выбрали UDP, а вам необходима надежность, то прикладная программа должна обеспечить надежность сама, как описано выше: требовать подтверждения, пересылки утерянных или увечных пакетов и т.д. Если вы выбрали TCP, а вам нужно передавать записи, то прикладная программа должна вставлять метки в поток байтов так, чтобы можно было различить записи.

Слайд 7





Свойства протокола UDP
Ненадежный – UDP не имеет ни встроенного механизма обнаружения ошибок, ни средств повторной пересылки поврежденных или потерянных данных
Без установления логического соединения – перед пересылкой данных  UDP не устанавливает логического соединения. Информация  пересылается в предположении, что принимающая сторона ее ожидает.
Основанный на сообщениях – UDP позволяет приложениям пересылать информацию в виде сообщений, передаваемых посредством дейтаграмм, которые являются единицами передачи данных в UDP. Приложение должно самостоятельно распределить данные по отдельным дейтаграммам.
Описание слайда:
Свойства протокола UDP Ненадежный – UDP не имеет ни встроенного механизма обнаружения ошибок, ни средств повторной пересылки поврежденных или потерянных данных Без установления логического соединения – перед пересылкой данных UDP не устанавливает логического соединения. Информация пересылается в предположении, что принимающая сторона ее ожидает. Основанный на сообщениях – UDP позволяет приложениям пересылать информацию в виде сообщений, передаваемых посредством дейтаграмм, которые являются единицами передачи данных в UDP. Приложение должно самостоятельно распределить данные по отдельным дейтаграммам.

Слайд 8





UDP-сокеты в Java
Java обеспечивает работу с дейтаграммами благодаря использованию классов DatagramSocket  и DatagramPacket пакета java.net. 
С помощью объекта DatagramSocket в Java-программе создается сокет для обеспечения сетевого соединения и пересылки дейтаграмм. 
С другой стороны, сама дейтаграмма представляет собой объект класса DatagramPacket и используется группой методов класса DatagramSocket.
Описание слайда:
UDP-сокеты в Java Java обеспечивает работу с дейтаграммами благодаря использованию классов DatagramSocket и DatagramPacket пакета java.net. С помощью объекта DatagramSocket в Java-программе создается сокет для обеспечения сетевого соединения и пересылки дейтаграмм. С другой стороны, сама дейтаграмма представляет собой объект класса DatagramPacket и используется группой методов класса DatagramSocket.

Слайд 9





Создание соединения
Для того, чтобы создать новое соединение для пересылки дейтаграмм, следует объявить экземпляр класса DatagramSocket, используя один из следующих его конструкторов:
DatagramSocket();
DatagramSocket(int port);
DatagramSocket(int port, InetAddress laddr); 
Где port – номер порта, laddr-адрес подключения.
Описание слайда:
Создание соединения Для того, чтобы создать новое соединение для пересылки дейтаграмм, следует объявить экземпляр класса DatagramSocket, используя один из следующих его конструкторов: DatagramSocket(); DatagramSocket(int port); DatagramSocket(int port, InetAddress laddr); Где port – номер порта, laddr-адрес подключения.

Слайд 10





Методы класса DatagramSocket 
Для экземпляров класса DatagramSocket определена группа методов, позволяющих как управлять процессами сетевого соединения, так и осуществлять его информационную поддержку.
getInetAddress() – возвращает адрес, к которому осуществляется подключение;
getPort() – возвращает порт, к которому осуществляется подключение;
getLocalAddress() – возвращает локальный адрес компьютера, с которого выполняется подключение;
getLocalPOrt() – возвращает локальный порт, через который производится подключение.
Описание слайда:
Методы класса DatagramSocket Для экземпляров класса DatagramSocket определена группа методов, позволяющих как управлять процессами сетевого соединения, так и осуществлять его информационную поддержку. getInetAddress() – возвращает адрес, к которому осуществляется подключение; getPort() – возвращает порт, к которому осуществляется подключение; getLocalAddress() – возвращает локальный адрес компьютера, с которого выполняется подключение; getLocalPOrt() – возвращает локальный порт, через который производится подключение.

Слайд 11





Отправка и получение пакетов DatagramPacket. 
После установки соединения, используя методы send()  и receive(), можно выполнить соответственно отправку и получение пакетов DatagramPacket. 
Однако предварительно необходимо будет объявить экземпляры класса DatagramPacket виду того, что методы send() и receive() в качестве параметра принимают объект данного класса. В связи с этим  для создания нового экземпляра класса DatagramPacket необходимо будет воспользоваться следующим из его конструкторов:
DatagramPacket(byte[] buf, int length, InetAddress, int port),
где buf – массив байт, представляющий пакет дейтаграммы, length – размер данного пакета, address-Internet-адрес отправки, port- порт компьютера, на который отправляется дейтаграмма.
Описание слайда:
Отправка и получение пакетов DatagramPacket. После установки соединения, используя методы send() и receive(), можно выполнить соответственно отправку и получение пакетов DatagramPacket. Однако предварительно необходимо будет объявить экземпляры класса DatagramPacket виду того, что методы send() и receive() в качестве параметра принимают объект данного класса. В связи с этим для создания нового экземпляра класса DatagramPacket необходимо будет воспользоваться следующим из его конструкторов: DatagramPacket(byte[] buf, int length, InetAddress, int port), где buf – массив байт, представляющий пакет дейтаграммы, length – размер данного пакета, address-Internet-адрес отправки, port- порт компьютера, на который отправляется дейтаграмма.

Слайд 12





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

Слайд 13





Методы DatagramPacket 
Для экземпляра класса DatagramPacket определена группа методов, информирующих и управляющих работой дейтаграммы.. К наиболее используемым методам данного класса можно отнести следующие:
getAddress() и setAddress()- возвращает / устанавливает адрес подключения;
getPort() и setPort() – возвращает / устанавливает порт подключения;
getLength() и setLength() – возвращает / устанавливает размер дейтаграммы.
Описание слайда:
Методы DatagramPacket Для экземпляра класса DatagramPacket определена группа методов, информирующих и управляющих работой дейтаграммы.. К наиболее используемым методам данного класса можно отнести следующие: getAddress() и setAddress()- возвращает / устанавливает адрес подключения; getPort() и setPort() – возвращает / устанавливает порт подключения; getLength() и setLength() – возвращает / устанавливает размер дейтаграммы.

Слайд 14





Исключения
В процессе работы с объектами дейтаграмм могут возникать исключительные ситуации, для чего нужно реализовать соответствующую обработку следующих исключений:
SocketException – ошибка протокола при обращении к сокету;
SecurityException – ошибка доступа к системе безопасности;
UnknownHostException – неправильно указан адрес InetAddress.
	
При завершении работы с сетевыми соединениями DatagramSocket его следует закрыть, используя метод close()  данного класса.
Описание слайда:
Исключения В процессе работы с объектами дейтаграмм могут возникать исключительные ситуации, для чего нужно реализовать соответствующую обработку следующих исключений: SocketException – ошибка протокола при обращении к сокету; SecurityException – ошибка доступа к системе безопасности; UnknownHostException – неправильно указан адрес InetAddress. При завершении работы с сетевыми соединениями DatagramSocket его следует закрыть, используя метод close() данного класса.

Слайд 15





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

Слайд 16





Программа-сервер
import java.net.*;
public class DatagramServer extends Thread
{
  byte[] buf = new byte[100];
  int port=8008;
  public void run()
   {
     try
       {
         // определяем локальный адрес
         InetAddress local=InetAddress.getByName("127.0.0.1");
         // определяем сокет дейтаграммы
         DatagramSocket srvsocket=new DatagramSocket(port,local);
Описание слайда:
Программа-сервер import java.net.*; public class DatagramServer extends Thread { byte[] buf = new byte[100]; int port=8008; public void run() { try { // определяем локальный адрес InetAddress local=InetAddress.getByName("127.0.0.1"); // определяем сокет дейтаграммы DatagramSocket srvsocket=new DatagramSocket(port,local);

Слайд 17






 // определяем пакет дейтаграммы
         DatagramPacket pack=new DatagramPacket(buf,buf.length);
         while (true)
         {
           //получаем дейтаграмму
           srvsocket.receive(pack);
           // конвертируем ее в строку
           String str =new String(pack.getData(),0,pack.getLength());
           System.out.println(str);
         }
       }
       catch(Exception e)
       {
         System.out.println(e.getMessage());
       }
   }
Описание слайда:
// определяем пакет дейтаграммы DatagramPacket pack=new DatagramPacket(buf,buf.length); while (true) { //получаем дейтаграмму srvsocket.receive(pack); // конвертируем ее в строку String str =new String(pack.getData(),0,pack.getLength()); System.out.println(str); } } catch(Exception e) { System.out.println(e.getMessage()); } }

Слайд 18






public static void main(String arg[])
  {
    System.out.println("Datagram server running");
    DatagramServer my=new DatagramServer();
    my.start();
  }
}
Описание слайда:
public static void main(String arg[]) { System.out.println("Datagram server running"); DatagramServer my=new DatagramServer(); my.start(); } }

Слайд 19





Программа-клиент
import java.net.*;
public class DatagramClient
{
 public static void main(String arg[])
{
// объявляем массив байт для пакета дейтаграммы
 byte[] buf=new byte[100];
//инициализация порта
 int port=8008;
 int cur=0;
 int ch;
 boolean flag=true;
Описание слайда:
Программа-клиент import java.net.*; public class DatagramClient { public static void main(String arg[]) { // объявляем массив байт для пакета дейтаграммы byte[] buf=new byte[100]; //инициализация порта int port=8008; int cur=0; int ch; boolean flag=true;

Слайд 20






 while (flag)
 {
  try
    {
// получаем символ с клавиатуры
      ch=System.in.read();
// определяем локальный адрес
      InetAddress local=InetAddress.getLocalHost();
// записываем символ в массив
      buf[cur]=(byte)ch;
      if (ch==-1) flag=false;
      if (ch=='\n')
         {
// определяем сокет дейтаграмм
           DatagramSocket srvsocket=new DatagramSocket();
// определяем пакет дейтаграммы  для отправки по адресу local и порту port
           DatagramPacket pack=new DatagramPacket(buf,buf.length, local, port);
Описание слайда:
while (flag) { try { // получаем символ с клавиатуры ch=System.in.read(); // определяем локальный адрес InetAddress local=InetAddress.getLocalHost(); // записываем символ в массив buf[cur]=(byte)ch; if (ch==-1) flag=false; if (ch=='\n') { // определяем сокет дейтаграмм DatagramSocket srvsocket=new DatagramSocket(); // определяем пакет дейтаграммы для отправки по адресу local и порту port DatagramPacket pack=new DatagramPacket(buf,buf.length, local, port);

Слайд 21






 //  посылаем пакет через сокет
           srvsocket.send(pack);
		cur=-1;
           for (int i=0; i<buf.length;i++) buf[i]=0;
         }
      cur++;
      }
      catch(Exception e)
      {
        System.out.println(e.getMessage());
        break;
      }
    }
}
}
Описание слайда:
// посылаем пакет через сокет srvsocket.send(pack); cur=-1; for (int i=0; i<buf.length;i++) buf[i]=0; } cur++; } catch(Exception e) { System.out.println(e.getMessage()); break; } } } }

Слайд 22





UDP-сокеты в C#
Фрагмент программы, ожидающей поступления дейтаграмм
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class UDPMulticastListener 
{
	private static readonly IPAddress GroupAddress = 
		IPAddress.Parse("127.0.0.1");
	private const int GroupPort = 13000;
Описание слайда:
UDP-сокеты в C# Фрагмент программы, ожидающей поступления дейтаграмм using System; using System.Net; using System.Net.Sockets; using System.Text; public class UDPMulticastListener { private static readonly IPAddress GroupAddress = IPAddress.Parse("127.0.0.1"); private const int GroupPort = 13000;

Слайд 23





Метод чтения дейтаграммы
private static void StartListener() 
	{
		bool done = false;        
		UdpClient listener = new UdpClient(13000);
		IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort);
try 
	{
Описание слайда:
Метод чтения дейтаграммы private static void StartListener() { bool done = false; UdpClient listener = new UdpClient(13000); IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort); try {

Слайд 24






while (!done) 
	{
		Console.WriteLine("Waiting for broadcast");
		byte[] bytes = listener.Receive(ref groupEP);			
		Console.WriteLine("Received broadcast from {0} :\n {1}\n",
groupEP.ToString(),Encoding.ASCII.GetString(bytes,0,bytes.Length));
	}
	listener.Close();
            
} 
catch (Exception e) 
{
	Console.WriteLine(e.ToString());
}
}
Описание слайда:
while (!done) { Console.WriteLine("Waiting for broadcast"); byte[] bytes = listener.Receive(ref groupEP); Console.WriteLine("Received broadcast from {0} :\n {1}\n", groupEP.ToString(),Encoding.ASCII.GetString(bytes,0,bytes.Length)); } listener.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); } }

Слайд 25





Вызов метода
public static int Main(String[] args) 
	{
		StartListener();
		return 0;
	}
}
Описание слайда:
Вызов метода public static int Main(String[] args) { StartListener(); return 0; } }

Слайд 26





Фрагмент программы, посылающей дейтаграмму
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class UDPMulticastSender 
{
private static IPAddress GroupAddress =	IPAddress.Parse("127.0.0.1");
private static int GroupPort = 13000;
Описание слайда:
Фрагмент программы, посылающей дейтаграмму using System; using System.Net; using System.Net.Sockets; using System.Text; public class UDPMulticastSender { private static IPAddress GroupAddress = IPAddress.Parse("127.0.0.1"); private static int GroupPort = 13000;

Слайд 27





Метод, отправляющий дейтаграмму
private static void Send( String message) 
{
	UdpClient sender = new UdpClient();
	IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort);
	try 
	{
		byte[] bytes = Encoding.ASCII.GetBytes(message);
		sender.Send(bytes, bytes.Length, groupEP);
            sender.Close();
		Console.WriteLine(" Sending datagram : {0}", message);
            
	}
Описание слайда:
Метод, отправляющий дейтаграмму private static void Send( String message) { UdpClient sender = new UdpClient(); IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort); try { byte[] bytes = Encoding.ASCII.GetBytes(message); sender.Send(bytes, bytes.Length, groupEP); sender.Close(); Console.WriteLine(" Sending datagram : {0}", message); }

Слайд 28





Вызов метода
catch (Exception e) 
		{
			Console.WriteLine(e.ToString());
		}
        
	}
public static int Main(String[] args) 
	{
		Send("text");
		Console.WriteLine("Sending datagram");
		return 0;
	}
}
Описание слайда:
Вызов метода catch (Exception e) { Console.WriteLine(e.ToString()); } } public static int Main(String[] args) { Send("text"); Console.WriteLine("Sending datagram"); return 0; } }



Похожие презентации
Mypresentation.ru
Загрузить презентацию