Работа с сетью Java Advanced. 2Georgiy KorneevJava Advanced / Работа с сетью Содержание Введение Адреса TCP-сокеты UDP-сокеты URI и URL Соединения Заключение.

Slides:



Advertisements
Similar presentations
CSCI Java Networking1 Java Net Classes ClassDescription DatagramPacketThis class represents a datagram packet. DatagramSocketThis class represents.
Advertisements

Referring to Java API Specifications
UDP Datagrams and Sockets Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
© 2003 Andrea Calvagna 5/16/2015 Java Sockets and Server Sockets Low Level Network Programming Andrea Calvagna
© 1999 Elliotte Rusty Harold 5/16/2015 Java Sockets and Server Sockets Low Level Network Programming Elliotte Rusty Harold
Socket Programming.
User Datagram Protocol. Introduction UDP is a connectionless transport protocol, i.e. it doesn't guarantee either packet delivery or that packets arrive.
Prepared By E. Musa Alyaman1 User Datagram Protocol (UDP) Chapter 5.
1 Java Networking – Part I CS , Spring 2008/9.
1 L53 Networking (2). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
Networking Support In Java 2 Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Internet Programming In Java. References Java.sun.com Java552 Many of the programs shown.
COMP1681 / SE15 Introduction to Programming
1 Networking in Java Representation and Management of Data on the Internet.
Lecture 11 Java Socket Programming CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger and Joonbok Lee.
Networking in Java Representation and Management of Data on the Internet.
Networking Support In Java Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Networking Support In Java 2 Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
13-Jul-15 Sockets and URLs. 2 Sockets A socket is a low-level software device for connecting two computers together Sockets can also be used to connect.
Networking java.net package, which provides support for networking. Its creators have called Java “programming for the Internet.” Socket :- A network socket.
Networking in Java Representation and Management of Data on the Internet.
Java Networking.
Socket Programming -What is it ? -Why bother ?. Basic Interface for programming networks at transport level It is communication end point Used for inter.
Babak Esfandiari (based on slides by Qusay Mahmoud)
Multicast Sockets What is a multicast socket?
Chapter 1: Introduction to Web Applications. This chapter gives an overview of the Internet, and where the World Wide Web fits in. It then outlines the.
VIII. UDP Datagrams and Sockets. The User Datagram Protocol (UDP) is an alternative protocol for sending data over IP that is very quick, but not reliable:
CS 424/524: Introduction to Java Programming Lecture 25 Spring 2002 Department of Computer Science University of Alabama Joel Jones.
DBI Representation and Management of Data on the Internet.
UDP vs TCP UDP Low-level, connectionless No reliability guarantee TCP Connection-oriented Not as efficient as UDP.
Socket Programming in Java CS587x Lecture 4 Department of Computer Science Iowa State University.
1 What is the Internet? Hosts or end-systems PCs, workstations, servers PDAs, phones, toasters Communication links fiber, copper, radio, satellite Routers.
The Inter-network is a big network of networks.. The five-layer networking model for the internet.
1 A TCP/IP Application Programming Perspective Chris Greenhalgh G53ACC.
Object Oriented Programming in Java Lecture 16. Networking in Java Concepts Technicalities in java.
Java Sockets Programming
L 2 - 1 3( 1/ 20) : Java Network Programming. The Socket API The previous contents describe client-server interaction that application programs use when.
What is a Network? Computer network Computer network a set of computers using common protocols to communicate over connecting transmission media. a set.
Networking Terminology: ISP (Internet service provider) – dialup, dsl, cable LAN (local area network) IP (internet protocol) address, eg
Sockets For Clients Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Java Networking. java.net package provides support of networking. Its creators have called Java "programming for the Internet." What makes Java a good.
Networking Java (2/3)
Java IO. Why IO ? Without I/O, your program is a closed box. Without I/O, your program is a closed box. I/O gives your Java program access to your hard.
CSI 3125, Preliminaries, page 1 Networking. CSI 3125, Preliminaries, page 2 Inetaddress Class When establishing a connection across the Internet, addresses.
TCP/IP Protocol Stack IP Device Drivers TCPUDP Application Sockets (Gate to network) TCP: –Establish connection –Maintain connection during the communication.
UNIT-6. Basics of Networking TCP/IP Sockets Simple Client Server program Multiple clients Sending file from Server to Client Parallel search server.
Java Programming II Java Network (I) Java Programming II.
UDP User Datagram Protocol. About the UDP A commonly used transport protocol Does not guarantee either packet delivery or order The packets may travel.
Agenda Socket Programming The OSI reference Model The OSI protocol stack Sockets Ports Java classes for sockets Input stream and.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Network Programming Communication between processes Many approaches:
Java.net CS-328 Dick Steflik.
Object-Orientated Analysis, Design and Programming
Secure Sockets SSL (Secure Sockets Layer) is a standard security technology for establishing an encrypted link between a server and a client—typically.
Chapter 03 Networking & Security
Topic: Network programming
Network Programming Introduction
NETWORK PROGRAMMING CNET 441
Network Programming Introduction
Network Programming Introduction
Sockets and URLs 17-Sep-18.
Java Network Programming
Sockets and URLs 13-Nov-18.
UNIT-6.
Networking.
Sockets and URLs 3-Dec-18.
Networking.
NETWORK PROGRAMMING CNET 441
Java Socket Programming
Presentation transcript:

Работа с сетью Java Advanced

2Georgiy KorneevJava Advanced / Работа с сетью Содержание Введение Адреса TCP-сокеты UDP-сокеты URI и URL Соединения Заключение

Введение Часть 1

4Georgiy KorneevJava Advanced / Работа с сетью Стек протоколов

5Georgiy KorneevJava Advanced / Работа с сетью Internet Protocol Идентификация адресата IP-адрес Порт

6Georgiy KorneevJava Advanced / Работа с сетью Transmission Control Protocol Двусторонний канал с гарантией доставки

7Georgiy KorneevJava Advanced / Работа с сетью User Datagram Protocol Односторонний канал без гарантии доставки

Адреса Часть 2

9Georgiy KorneevJava Advanced / Работа с сетью Интернет-адрес Представляет пару IP-адрес – доменное имя

10Georgiy KorneevJava Advanced / Работа с сетью Получение интернет-адресов Фабричные методы класса InetAddress InetAddress getByName(String) – любой по доменному имени InetAddress[] getAllByName(String) – все по доменному имени InetAddress getByAddress(byte[]) – по IP-адресу InetAddress getByAddress(String, byte[]) – по доменному имени и IP-адресу InetAddress getLocalHost() – адрес текущего компьютера

11Georgiy KorneevJava Advanced / Работа с сетью Методы интернет-адресов Работа с DNS String getHostName() – получение доменного имени String getCanonicalHostName() – получение полного доменного имени Работа с IP-адресом byte[] getAddress() – получение IP-адреса String getHostAddress() – получение IP-адреса в текстовой форме Прочие isReachable(int timeout) – проверка достижимости

12Georgiy KorneevJava Advanced / Работа с сетью Адрес порта Представляет пару интернет-адрес – порт

13Georgiy KorneevJava Advanced / Работа с сетью Создание адресов порта Конструкторы класса InetSocketAddress InetSocketAddress(InetAddress, int port) – по адресу и порту InetSocketAddress(String, int port) – по доменному имени и порту

14Georgiy KorneevJava Advanced / Работа с сетью Методы адресов портов Информация об адресе getAddress() – получение интернет-адреса getHostName() – получение имени getPort() – получение порта

TCP-сокеты Часть 3

16Georgiy KorneevJava Advanced / Работа с сетью TCP-сокеты Применяются для связи по протоколу TCP Образуют два независимых потока данных Классы Socket – представляет TCP-соединение, создает TCP-соединение на стороне пользователя ServerSocket – создает TCP-соединения на стороне сервера

17Georgiy KorneevJava Advanced / Работа с сетью Создание соединения на клиенте Конструкторы класса Socket Socket(InetAddress, port) – по интернет-адресу Socket(String host, port) – по доменному имени Socket(InetAddress, port, InetAddress, port) – по заданному локальному адресу и порту Socket() – без установления соединения Методы класса Socket connect(SocketAddress, timeout?) – установить соединение

18Georgiy KorneevJava Advanced / Работа с сетью Ввод-вывод Потоки getInputStream() – входящий поток getOutputStream() – исходящий поток Закрытие потоков shutdownInput() – закрытие входящего потока и отбрасывание полученных данных shutdownOutput() – закрытие исходящего потока Проверка потоков isInputShutdown() – входящего потока isOutputShutdown() – исходящего потока

19Georgiy KorneevJava Advanced / Работа с сетью Получение информации Об удаленном конце getInetAddress() – интернет адрес getPort() – порт getRemoteSocketAddreess() – адрес порта Об локальном конце getLocalAddress() – интернет адрес getLocalPort() – порт getLocalSocketAddreess() – адрес порта

20Georgiy KorneevJava Advanced / Работа с сетью Закрытие соединения Соединение закрывается Методом close() сокета Методом close() потоков сокета При закрытии с удаленной стороны

21Georgiy KorneevJava Advanced / Работа с сетью Создание соединений на сервере Конструкторы класса ServerSocket ServerSocket(port) – по порту ServerSocket(port, backlog) – по порту, с указанием размера очереди ServerSocket() – без привязки Методы класса ServerSocket bind(SocketAddress) – по адресу порта bind(SocketAddress, backlog) – по адресу порта, с указанием размера очереди

22Georgiy KorneevJava Advanced / Работа с сетью Прием соединений на сервере Методы класса ServerSocket Socket accept() – ждет следующего клиента и создает соединение setSoTimeout() – установка времени ожидания getSoTimeout() – получение времени ожидания close() – окончание ожидание клиентов

UDP-сокеты Часть 4

24Georgiy KorneevJava Advanced / Работа с сетью UDP-сокеты Применяются для связи по протоколу UDP Классы DatagramPacket – UDP пакет DatagramSocket – UDP-сокет для приема и отсылки пакетов

25Georgiy KorneevJava Advanced / Работа с сетью Создание UDP-пакетов Для приема DatagramPacket(byte[], offset?, length) – по буферу Для отправки DatagramPacket(byte[], offset?, length, InetAddress, port) – по интернет-адресу и порту DatagramPacket(byte[], offset?, length, SocketAddress) – по адресу порта

26Georgiy KorneevJava Advanced / Работа с сетью Операции с UDP-пакетами Работа с данными getData()/setData() – буфер данных getOffset()/setOffset() – смещение данных getLength()/setLength() – длина данных Работа с адресами getAddress()/setAddress() – интернет-адрес getPort()/setPort() – порт getSocketAddress()/setSocketAddress() – адрес порта

27Georgiy KorneevJava Advanced / Работа с сетью Создание UDP-сокета Конструкторы класса DatagramSocket DatagramSocket(port) – по порту DatagramSocket(InetAddress, port) – по порту и адресу DatagramSocket(SocketAddress) – по адресу порта DatagramSocket() – без привязки Методы класса DatagramSocket bind(SocketAddress) – привязывает к адресу

28Georgiy KorneevJava Advanced / Работа с сетью Прием и отсылка UDP-пакетов Прием пакета receive(DatagramPacket) – ожидает получения пакета Отсылка пакета send(DatagramPacket) – отсылает пакет

URI и URL Часть 4

30Georgiy KorneevJava Advanced / Работа с сетью Uniform Resource Identifier Идентифицирует ресурс Общий URI [scheme:]scheme-specific-part[#fragment] Иерархический URI [#fragment] Класс URI

31Georgiy KorneevJava Advanced / Работа с сетью Создание URI Конструкторы класса URI URI(String) – по строке URI(scheme, ssp, fragment) – из крупных частей URI(sheme, userInfo, host, port, path, query, fragment) – из мелких частей Фабричные методы класса URI create(String) – по строке Из других объектов file.toURI() – из дескриптора файла url.toURI() – из URL Исключение URISyntaxException

32Georgiy KorneevJava Advanced / Работа с сетью Получение частей URI getScheme()scheme getSchemeSpecificPart()sheme-specific pat getUserInfo()userInfo getHost()host getPort()port getPath()path getQuery()query getFragment()fragment

33Georgiy KorneevJava Advanced / Работа с сетью Операции над URI Нормализация URI normalize() – нормалиовать URI “Откладывание” от базового URI URI resolve(URI base) URI resolve(String base) Взятие относительного URI URI relativize(URI base) Сравнение equals(Object)

34Georgiy KorneevJava Advanced / Работа с сетью Uniform Resource Locator Указывает местоположение ресурса Подмножество иерархических URI Класс URL

35Georgiy KorneevJava Advanced / Работа с сетью Создание URL Конструкторы класса URL URL(String) – по строке URL(protocol, host, file) – из крупных частей URL(protocol, host, port, file, path, query, fragment) – из мелких частей Из других объектов file.toURL() – из дескриптора файла uri.toURL() – из URI Исключение MalformedURLException

Соединения Часть 5

37Georgiy KorneevJava Advanced / Работа с сетью Соединения Позволяют оперировать с ресурсами, заданными URL

38Georgiy KorneevJava Advanced / Работа с сетью Жизненный цикл соединения 1. Открытие соединения url.openConnection() 2. Установка свойств соединения 3. Установка соединения connect() 4. Оперирование с соединением getInputStream()/getOutputStream() 5. Закрытие соединения close()

39Georgiy KorneevJava Advanced / Работа с сетью Поддерживаемые протоколы http – HTTP-ресурс https – HTTPS-ресурс ftp – FTP-файл file – локальный файл jar – файл внутри Jar

Заключение Часть 6

41Georgiy KorneevJava Advanced / Работа с сетью Ссылки Networking Fatures (guide) // Custom Networking (tutorial) // rking/index.html rking/index.html Uniform Resource Locators (URL) // Uniform Resource Identifiers (URI) //

42Georgiy KorneevJava Advanced / Работа с сетью Вопросы