BÀI GIẢNG LẬP TRÌNH MẠNG_CHƯƠNG 1 Lập trình dùng Socket

pdf
Số trang BÀI GIẢNG LẬP TRÌNH MẠNG_CHƯƠNG 1 Lập trình dùng Socket 35 Cỡ tệp BÀI GIẢNG LẬP TRÌNH MẠNG_CHƯƠNG 1 Lập trình dùng Socket 696 KB Lượt tải BÀI GIẢNG LẬP TRÌNH MẠNG_CHƯƠNG 1 Lập trình dùng Socket 0 Lượt đọc BÀI GIẢNG LẬP TRÌNH MẠNG_CHƯƠNG 1 Lập trình dùng Socket 0
Đánh giá BÀI GIẢNG LẬP TRÌNH MẠNG_CHƯƠNG 1 Lập trình dùng Socket
4.3 ( 6 lượt)
Nhấn vào bên dưới để tải tài liệu
Đang xem trước 10 trên tổng 35 trang, để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG DÙNG SOCKET CHƯƠNG 1 Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 1 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM KHÁI NIỆM VỀ SOCKET z Socket API – – – – Ðược giới thiệu ở BSD4.1 UNIX, 1981 Ðược ứng dụng khởi tạo, sử dụng và hủy bỏ. Dùng cơ chế client/server Cung cấp hai dịch vụ chuyển dữ liệu thông qua socket API: • unreliable datagram • reliable, byte stream-oriented Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 2 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM KHÁI NIỆM VỀ SOCKET Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 3 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM THIẾT KẾ GIẢI THUẬT CLIENT/SERVER z Thiết kế giải thuật cho client – Giải thuật cho chương trình client dùng UDP z z z z – Xác định địa chỉ server. Tạo socket. Gởi/nhận dữ liệu theo giao thức lớp ứng dụng đã thiết kế. Đóng socket. Giải thuật cho chương trình client dùng TCP z z z z z Xác định địa chỉ server Tạo socket. Kết nối đến server. Gởi/nhận dữ liệu theo giao thức lớp ứng dụng đã thiết kế. Đóng kết nối. Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 4 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM THIẾT KẾ GIẢI THUẬT CLIENT/SERVER z Thiết kế giải thuật cho Server – Chương trình server có hai loại: z Lặp(iterative) z Đồng – thời (concurrent). Hai dạng giao thức chương trình server: z Connection-oriented z Connectionless. Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 5 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM THIẾT KẾ GIẢI THUẬT CLIENT/SERVER Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 6 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM THIẾT KẾ GIẢI THUẬT CLIENT/SERVER Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 7 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM THIẾT KẾ GIẢI THUẬT CLIENT/SERVER Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 8 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM THIẾT KẾ GIẢI THUẬT CLIENT/SERVER Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 9 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM THIẾT KẾ GIẢI THUẬT CLIENT/SERVER Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 10 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM THIẾT KẾ GIẢI THUẬT CLIENT/SERVER Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 11 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA z Gói java.net – – – – – – InetAddress ServerSocket Socket URL URLConnection DatagramSocket Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 12 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA z InetAddress class – – Class mô tả về địa chỉ IP (Internet Protocol) Các phương thức getLocalHost, getByName, hay getAllByName để tạo một InetAddress instance: z z z – public static InetAddess InetAddress.getByName(String hostname) public static InetAddess [] InetAddress.getAllByName(String hostname) public static InetAddess InetAddress.getLocalHost() Để lấy địa chỉ IP hay tên dùng các phương thức: z z getHostAddress() getHostName() Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 13 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA z In địa chỉ IP của localhost import java.net.*; public class HostInfo { public static void main(String args[]) { HostInfo host = new HostInfo(); host.init(); } public void init() { try { InetAddress myHost = InetAddress.getLocalHost(); System.out.println(myHost.getHostAddress()); System.out.println(myHost.getHostName()); } catch (UnknownHostException ex) { System.err.println("Cannot find local host"); } } } Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 14 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA z In địa chỉ IP của proxy.hcmut.edu.vn import java.net.*; class kku{ public static void main (String args[]) { try { InetAddress[] addresses = InetAddress.getAllByName(“proxy.hcmut.edu.vn"); for (int i = 0; i < addresses.length; i++) { System.out.println(addresses[i]); } } catch (UnknownHostException e) { System.out.println("Could not find proxy.hcmut.edu.vn"); } } } Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 15 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA z Các chương trình đọc thêm – Tạo một địa chỉ IP từ mảng byte, chuỗi String. z – InetAddressFactory.java Cho một địa chỉ tìm tên máy. z ReverseTest.java Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 16 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 17 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA z Socket class – – Class mô tả về socket Tạo một socket z z z z z Socket(InetAddress address, int port) Socket(String host, int port) Socket(InetAddress address, int port, InetAddress, localAddr, int localPort) Socket(String host, int port, InetAddress, localAddr, int localPort) Socket() Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 18 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA z Socket class (tiếp theo) – Lấy thông tin về một socket z InetAddress getInetAddress() : trả về địa chỉ mà socket kết nối đến. z int getPort() : trả về địa chỉ mà socket kết nối đến. z InetAddress getLocalAddress() : trả về địa chỉ cục bộ. z int getLocalPort() : trả về địa chỉ cục bộ. – Sử dụng Streams z public OutputStream getOutputStream() throws IOException Trả về một output stream cho việc viết các byte đến socket này. z public InputStream getInputStream() throws IOException Trả về một input stream cho việc đọc các byte từ socket này. Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 19 Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MẠNG TRÊN JAVA z Kết nối đên 1 số webserver import java.net.*; import java.io.*; public class getSocketInfo { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { try { Socket theSocket = new Socket(args[i], 80); System.out.println("Connected to " + theSocket.getInetAddress() + " on port " + theSocket.getPort() + " from port " + theSocket.getLocalPort() + " of " + theSocket.getLocalAddress()); Baûn quyeàn ®2005- Khoa Coâng Ngheä Thoâng Tin Trang 20
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.