1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình mạng: Chương 5 - ĐH Công nghệ Đồng Nai

46 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 1,23 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Lập trình mạng - Chương 5 trang bị cho người học những hiểu biết về quản lý địa chỉ kết nối mạng InetAdress, URL, URLConnection . Thông qua chương này người học sẽ biết về: IP, DNS, InetAddress, URL và URLConnection. Mời các bạn cùng tham khảo.

Trang 1

Quản lý địa chỉ kết nối mạng InetAdress, URL, URLConnection

Trang 3

3

Trang 4

A 0|netid|hostid N.H.H.H 7/24 2 7 -2=126 2 24

-2=17.777.214

126.0.0.0

E 1|1|1|1 - - - -

240.0.0.0-254.255.255.2 55

Loopba

ck - - - - - 127.x.x.x

Trang 5

-> 128.36.229.30

 (cs.yale.edu, Email) -> netra.cs.yale.edu

 (netra.cs.yale.edu, Addr)

-> 128.36.229.21

 Tại sao phải dùng tên thay

cho địa chỉ IP?

Trang 6

DNS: Domain Name System

 Lược đồ tên miền (IANA, ICANN)

 Nslookup (Domain/IP)

Trang 7

Quản lý tên miền

 Mỗi nhóm tên (Zone) có một server chứng thực tên

 Mỗi Zone được ủy quyền chứng thực một tập tên miền

M t Zone ột Zone

Trang 8

Nhóm Zone gốc và Server

 13 servers quản lý zone gốc trên toàn cầu

Trang 9

Liên kết giữa các sever DNS

 Mỗi server biết địa chỉ server gốc

 Mỗi server gốc biết địa chỉ chính nó và địa chỉ node con trực tiếp

Tên miềm cấp cao

Trang 10

Ví dụ xác định tên miền

Trang 12

Tạo đối tượng InetAddresses

 Không có phương thức khởi tạo

 Tất cả các đối tượng địa chỉ được tạo ra, địa chỉ

tương ứng phải được kiểm trả với DNS

 public static InetAddress

InetAddress.getByName ( String hostname )

 public static InetAddress[]

InetAddress.getAllByName (String

hostname )

 public static InetAddress

InetAddress.getLocalHost ()

Trang 13

Tạo đối tượng : getByName ()

 public static InetAddress getByName(String host)

catch (UnknownHostException e) {

System.err.println(e);

}

Trang 14

Tạo đối tượng: getByName()

 public static InetAddress getByName(String host)

throws UnknownHostException

InetAddress ipdntu, dntu;

try {

ipdntu = InetAddress.getByName(“dntu.edu.vn"); dntu = InetAddress.getByName("118.69.218.67");}

catch (UnknownHostException e) {

System.err.println(e);

}

Trang 15

Phương thức lấy các thành phần

 public String getHostName( )

 public byte[] getAddress()

 public String getHostAddress()

Trang 16

Phương thức kiểm tra

 public boolean isReachable(int timeout) throws

IOException

 public boolean isMulticastAddress()

 public boolean isSiteLocalAddress()

Trang 17

} catch (SocketException ex) {

System.err.println("Could not list sockets." );

}

17

Trang 18

import java.net.*; import java.util.*;

public class InterfaceLister {

public static void main(String[] args) throws Exception {

Trang 19

Cổng ứng dụng

 Một host có một địa chỉ duy nhất để nhận dạng, làm thế nào để đồng thời nhiều ứng dụng trên một host có thể

giao tiếp với host khác ?

Cổng-port được sử dụng Có 65,536 port

 Một một dịch vụ tương ứng với một port Ví dụ, http chạy với port 80

Trang 20

Giao thức

 Mỗi dịch vụ tương ứng với một giao thức

 Giao thức qui định 2 dịch vụ của 2 host giao tiếp với nhau như thế nào

 Ví dụ

 telnet, SMTP, HTTP

 http://www.faqs.org/rfc/

Trang 21

 URL-"Uniform Resource Locator", xác định tài

nguyên trên mạng Internet

Trang 23

The java.net.URL class

 Đối tượng biểu diễn URL

 Cho phép kết nối tới server

 Có các phương thức

 Tạo một đối tượng URL mới

 Phân tích các thành phần của URL

 Lấy luồng nhập để đọc dữ liệu từ server

Trang 24

Quản lý dữ liệu và giao thức

 Dữ liệu và giao thức tương ứng được kiểm soát

Trang 25

Tạo đối tượng URL

 public URL(String url) throws MalformedURLException

 public URL(String protocol, String host, String file) throws MalformedURLException

 public URL(String protocol, String host, int port, String file) throws MalformedURLException

 public URL(URL u, String s) throws

MalformedURLException

 Khi máy ảo tạo ra đối tượng URL, thì đồng thời nó tìm

trình quản lý giao thức tương ứng ví dụ “http” hoặc

“mailto”.

 Nếu không có, hàm khởi tạo tạo ra ngoại lệ

MalformedURLException

Trang 26

Ví dụ

try {

URL u = newURL("http://www.poly.edu/fall97/grad.html#cs");}

catch (MalformedURLException e) {}

Trang 30

Thao tác thành phần URL

 public String getProtocol()

 public String getHost()

 public int getPort()

 public String getFile()

 public String getRef()

 public String getQuery()

Trang 31

Ví dụ

try {

URL u = new URL("http://www.poly.edu/fall97/grad.php? q=idx#cs ");

System.out.println("The protocol is"+u.getProtocol());

System.out.println("The host is " + u.getHost());

System.out.println("The port is " + u.getPort());

System.out.println("The file is " + u.getFile());

System.out.println("The anchor is " + u.getRef());

System.out.println("The query is " + u.getQuery());

}catch (MalformedURLException e) { }

Trang 34

Mã hóa URL

 Các ký tự trong bảng mã ASCII gồm a-z, A-Z, , 0-9

và $-_.!*'(), là không thay đổi

 Các ký tự khoảng cách trắng bị biến đổi thành dấu cộng (+)

 Các ký tự khác (ví dụ &, =, ^, #, %, ^, {, ) bị biến đổi thành dấu phần trăm và theo sau đó là giá trí trị

mã ASCII của nó biểu diễn ở hệ cơ số 16

Trang 35

Ví dụ

 Dấu phẩy mã ASCII là (44)10 hay (2C)16 Vì vậy,

trong URL dấu phẩy được mã là %2C

Trang 38

Lớp URLConnection

 Cho phép tạo kênh giao tiếp với Server (FTP,

HTTP, )

 Có thể gửi dữ liệu và đọc dữ liệu

 Mặc định khi kết nối tới HTTP, URL sử dụng

phương thức GET

 Đọc thông tin Header khi giao tiếp với Server

Trang 39

Tạo đối tượng URLConnection

 Tạo đối tượng URL

 Gọi phương thức openConnection()

 Đọc các trường header

 Nhận một luồng nhập và đọc dữ liệu

 Nhận một luồng xuất và ghi dữ liệu

 Đóng liên kết

Trang 40

Tạo đối tượng URLConnection

 public Map getHeaderFields()

 public InputStream getInputStream()

 public OutputStream getOutputStream()

 public abstract void connect() throws

IOException

Trang 41

}catch(MalformedURLException e){System.err.println(e);}

Trang 43

Các hàm nhận thông tin Header

public String getHeaderField(String name) public int getContentLength()

public String getContentType()

public String getContentEncoding()

public long getExpiration()

public long getDate()

public long getLastModified()

 Ví dụ:

 uc.getHeaderField("content-type");

 uc.getHeaderField("content-encoding");

Trang 45

if((i>=1)&&(i<=126)) System.out.println(host+" thuoc dia chi lop A");

if((i<=191)&&(i>=128)) System.out.println(host+" thuoc dia chi lop B");

if((i<=223)&&(i>=192)) System.out.println(host+" thuoc dia chi lop C");

}catch(UnknownHostException e){

System.out.println("Khong tim thay dia chi"); return;

}

}}

Trang 46

Ví dụ

import java.net.*;

public class Local {

public static void main(String[] args) {

try {

InetAddress me = InetAddress.getLocalHost();

System.out.println("My name is " + me.getHostName());

System.out.println("My address is " + me.getHostAddress());

byte[] address = me.getAddress();

for (int i = 0; i < address.length; i++) {

System.err.println("Could not determine local address.");

System.err.println("Perhaps the network is down?");

}

}

My address is 192.168.1.6 -64 -88 1 6

Ngày đăng: 11/04/2021, 22:22

🧩 Sản phẩm bạn có thể quan tâm