2.2.Các lớp của gói Java.net
2.2.1. ContentHandler
-Đây là lớp thuộc java.lang.Object
-Được sử dụng là lớp cơ sở của các lớp điều khiển các kiểu đặc biệt MIME
-ContentHandlerFactory interface được sử dụng để lựa chọn ContentHandler thích hợp cho các kiểu
Public members of java.net.ContentHandler.
abstract public class ContentHandler
{
abstract public Object getContent(URLConnection urlc) throws
IOException
}
20 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2412 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Đề tài Tìm hiểu về gói Java.net và xây dựng bài toán ứng dụng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
KHOA CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG ************************ BÀI TẬP LỚN Đề tài Lập trình mạng:Tìm hiểu về gói Java.net và xây dựng bài toán ứng dụng Giáo viên hướng dẫn : Phùng Anh Tuấn Nhóm thực hiện: Đinh Thị Hường Nguyễn Thị Nga Nguyễn Thị Kim Lương Lớp:CT801 NỘI DUNG I.Tìm hiểu về gói java.net 1.Vị trí,ứng dụng của java.net 2.Các thành phần của gói java.net II.Bài toán ứng dụng I.Tìm hiểu về gói Java.net 1.Vị trí,ứng dụng của gói Java.net - java.net là một gói quan trọng của ngôn ngữ lập trình Java. - java.net chứa các lớp cung cấp khả năng giao tiếp với máy từ xa.Nó cho phép tạo kết nối tới Socket hoặc URL (dùng trong lập trình mạng) 2.Các thành phần của gói java.net 2.1.Nội dung của gói Java.net 2.2.Các lớp của gói Java.net 2.2.1. ContentHandler -Đây là lớp thuộc java.lang.Object -Được sử dụng là lớp cơ sở của các lớp điều khiển các kiểu đặc biệt MIME -ContentHandlerFactory interface được sử dụng để lựa chọn ContentHandler thích hợp cho các kiểu Public members of java.net.ContentHandler. abstract public class ContentHandler { abstract public Object getContent(URLConnection urlc) throws IOException } Phương thức getContent( ) lấy đối số kết nối URL tại vị trí của input stream và cấu trúc đối tượng của nó - urlc là đối tượng kết nối URL tương ứng với input stream được đọc bởi ContentHandler - Object:là đối tượng được xây dựng từ kết nối URL - IOException: nếu input stream không thể đọc 2.2.2.DatagramPacket -Được sử dụng để lưu trữ các gói DL gồm DL,độ dài,địa chỉ Internet và port public final class DatagramPacket { public DatagramPacket(byte ibuf[], int ilength) //nhận DL public DatagramPacket(byte ibuf[], int ilength,InetAddress iaddr, int iport) //gửi DL public InetAddress getAddress() // trả lại giá trị đ/c IP public int getPort() //trả lại giá trị cổng là nguyên public byte[] getData() //trả lại mảng giá trị public int getLength() //chiều dài của DatagramPacket có giá trị nguyên } - ibuf: số byte của mảng dùng lưu trữ DatagramPacket - ilength: kích thước của DatagramPacket(giá trị nguyên) - iaddr :địa chỉ IP đến - iport :cổng đến - InetAddress:chứa địa chỉ IP cảu DatagramPacket 2.2.3.DatagramSocket -Được sử dụng chỉ định socket thực thi datagram không đầy đủ.Các gói không đầy đủ bởi vì không có kế hoạch kiểm tra sự bảo đảm các gói tin không bị hư hỏng trên đường truyền public class DatagramSocket { public DatagramSocket() throws SocketException //thực thi kết nối không đầy đủ public DatagramSocket(int port) throws SocketException// //thực thi kết nối không đầy đủ sử dụng cổng chỉ định public void send(DatagramPacket p) throws IOException //nhận DatagramPacket public synchronized void receive(DatagramPacket p) throws IOException //gửi DL public int getLocalPort() public synchronized void close() //kết thúc } - throws SocketException :nếu socket không thể tạo được - send(DatagramPacket p) :gửi Datagrampacket tới địa chỉ được chỉ định trong giá trị địa chỉ của Datagrampacket với p là đối tượng DatagramPacket chứa DL gửi qua socket - throws IOException :nếu ngoại lệ I/O xảy ra - receive(DatagramPacket p) :phương thức này là một khối cho đến khi Datagrampacket được gửi hết với p là DL gửi - getLocalPort() :trả lại địa chỉ cổng máy local là giới hạn cho socket 2.2.4. InetAddress - Được sử dụng tượng trưng cho địa chỉ Internet public final class InetAddress { public String getHostName() public byte[] getAddress() public String getHostAddress() public int hashCode() public boolean equals(Object obj) public String toString() public static synchronized InetAddress getByName(String host) throws UnknownHostException public static synchronized InetAddress getAllByName(String host)[] throws UnknownHostException public static InetAddress getLocalHost() throws UnknownHostException } - public String getHostName() :trả lại tên của host trong InetAddress.Nếu host là null thì String (đối tượng chứa đựng tên của host của InetAddress)được trả lại bao gồm một vài địa chỉ sẵn có của máy local - public byte[] getAddress():trả lại mảng chứa số byte bao gồm địa chỉ IP sống củabyte mạng khác - public String getHostAddress() :trả lại địa chỉ IP dạng chuỗi có định dạng %d.%d.%d.%d. - public int hashCode():trả lại code hỏng -public boolean equals(Object obj): sử dụng để đối chiếu InetAddress với đối tượng chỉ định boolean=true nếu bằng nhau,ngược lại =false - public String toString() :trả lại chuỗi đại diện cho InetAddress (String chứa thông tin của InetAddress) -getbyname():trả lại đối tượng InetAddress dựa trên hostname được chỉ định UnknownHostException:host chỉ định bị lỗi hoặc không xác định -getAllbyname():trả lại mảng của InetAddress gồm tất cả các địa chỉ cho host được chỉ định - getLocalHost() :gồm các địa chỉ của local host 2.2.5.ServerSocket - Được sử dụng tóm lược phục vụ socket - setSocketFactory():sử dụng thay đổi việc thi hành dựa trên filewall chỉ định public final class ServerSocket { public ServerSocket(int port) throws IOException public ServerSocket(int port, int backlog) throws IOException public InetAddress getInetAddress() public int getLocalPort() public Socket accept() throws IOException public void close() throws IOException //kết thúc public String toString() public static synchronized void setSocketFactory(SocketImplFactory fac) throws IOException} : tạo server socket trên địa chỉ port - public ServerSocket(int port) throws IOException - public ServerSocket(int port, int backlog) throws IOException :tạo server socket trên địa chỉ port và lắng nghe thời gian chỉ định .backlog:chỉ định lượng thời gian nghe trên kết nối -getInetAddress() :trả lại địa chỉ InetAddress nơi socket được kết nối. -getLocalPort() :trả lại localport trên socket nghe hiện thời - public Socket accept() throws IOException . accept() :chấp nhận kết nối.Là một khối cho đến khi kết nối được tạo . IOException:nếu I/O lỗi trong quá trình chờ kết nối - public String toString() :trả lại chuỗi đại diện cho ServerSocket . String:bao gồm cả địa chỉ thi hành và địa chỉ cổng của ServerSocket -public static synchronized void setSocketFactory(SocketImplFactory fac) throws IOException,SocketException . setSocketFactory:cài đặt SocketImplFactory cho ServerSocket sử dụng . Fac là giao diện của SocketImplFactory cho ServerSocket sử dụng . SocketException nếu SocketImplFactory luôn cài đặt 2.2.5.Socket -Để thực hiện kết nối TCP/IP public final class Socket { public Socket(String host, int port) throws UnknownHostException, IOException public Socket(String host, int port, boolean stream) throws IOException public Socket(InetAddress address, int port) throws IOException public Socket(InetAddress address, int port, boolean stream) throws IOException public InetAddress getInetAddress() public int getPort() public int getLocalPort() public InputStream getInputStream() throws IOException public OutputStream getOutputStream() throws IOException public synchronized void close() throws IOException public String toString() public static synchronized void setSocketImplFactory(SocketImplFactory fac) throws IOException} -public Socket(String host, int port) throws UnknownHostException, IOException . .Socket() :tạo stream socket với port chỉ định trên cổng mặc định .host :kiểu string chứa hostname tạo trên socket .port :kiểu interger là port tạo trên socket . UnknownHostException :nếu hostname không xác định hoặc bị lỗi . IOException:nếu I/O lỗi thi hành trong khi tạo socket -public Socket(String host, int port, boolean stream) throws IOException .Socket() :tạo stream socket với port chỉ định trên cổng mặc định. .Boolean stream:giá trị sử dụng cho stream socket và datagram socket.Có giá trị đúng nếu stream socket được tạo,lỗi nếu datagram socket được tạo -public Socket( InetAddress address, int port) throws IOException. InetAddress address :địa chỉ InetAddress được chọn trong khi tạo socket -public InetAddress getInetAddress() :trả lại địa chỉ mà socket kết nối . InetAddress:chứa thông tin về địa chỉ socket connect -public int getPort():trả lại cổng từ xa mà socket connect tới -public InputStream getInputStream() throws IOException :sử dụng như là input stream của socket 2.2.6.URL -Địa chỉ tới một trạm internet hay trạm cục bộ -Tham chiếu tới Web như là FTP site, e-mail address, or HTML page on a Web server. public final class URL { public URL(String protocol, String host, int port, String file) throws MalformedURLException public URL(String protocol, String host, String file) throws  MalformedURLException public URL(String spec) throws MalformedURLException public URL(URL context, String spec) throws MalformedURLException public int getPort() public String getProtocol() public String getHost() public String getFile() public String getRef() public boolean equals(Object obj) public int hashCode() public boolean sameFile(URL other) public String toString() public String toExternalForm() public URLConnection openConnection() throws java.io.IOException public final InputStream openStream() throws java.io.IOException public final Object getContent() throws java.io.IOException public static synchronized void setURLStreamHandlerFactory (URLStreamHandlerFactory fac)} - public URL(String protocol, String host, int port, String file) throws MalformedURLException. URL():tạo URL sử dụng protocol, host, port, and host filename chỉ định . MalformedURLException :nếu protocol không hiểu hoặc bị lỗi - public URL(String spec) throws MalformedURLException Số hiệu cổng phải là mặc định sử dụng cho protocol chỉ định - public URL(URL context, String spec) throws MalformedURLException: tạo URL sử dụng cho việc chỉ định không phân tách URL -public String toExternalForm() :đảo ngược cú pháp URL II.Bài toán ứng dụng: Sử dụng lớp Socket để tìm thông tin (đọc các tệp html) từ WebServer.Giả sử chúng ta muốn truy nhập thông tin ở địa chỉ :