Danh mục

Lập trình mạng socket

Số trang: 28      Loại file: docx      Dung lượng: 46.03 KB      Lượt xem: 15      Lượt tải: 0    
tailieu_vip

Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Java xây d ng m t l p InetAddress dành riêng cho vi c qu n lý đ a ch theo tên và theự ộ ớ ệ ả ị ỉ osố. Lớp InetAddress cung cấp các phương thức static thông dụng nhất dùng để chuyểnđổi và truy xuất địa chỉ IP (không có phương thức khởi dựng cho lớp này). Thường ta sẽquan tâm đến các phương thức sau:
Nội dung trích xuất từ tài liệu:
Lập trình mạng socket1. Internet AddressJava xây dựng một lớp InetAddress dành riêng cho việc quản lý địa chỉ theo tên và theosố. Lớp InetAddress cung cấp các phương thức static thông dụng nhất dùng để chuyểnđổi và truy xuất địa chỉ IP (không có phương thức khởi dựng cho lớp này). Thường ta sẽquan tâm đến các phương thức sau:+) public static InetAddress getLocalHost () throwUnknownHostExceptiongetByNameTrả về đối tượng InetAddress là địa chỉ của máy cục bộ (localhost)Ví dụ: InetAddress host=InetAddress.getLocalHost();+) public static InetAddress getByName (String host) throws UnknownHostExceptionPhương thức này nhận một địa chỉ của một máy bằng kiểu chuỗi String và trả về đốitượng kiểu InetAddress thay mặt cho địa chỉ máy này.Ví dụ: InetAddress host=InetAddress.getByName(“203.162.10.100”);InetAddress host=InetAddress.getByName(“www.mobifone.com.vn”);+) public static InetAddress[] getAllByName(String host) throwsUnknownHostExceptionPhương thức này nhận một địa chỉ của một máy bằng kiểu chuỗi và trả về tất cả cácđối tượng InetAddress thay mặt cho địa chỉ máy này.+) public byte [] getAddress ()Trả về địa chỉ IP của đối tượng InetAddrees dưới dạng một dãy các byte. Vị trí byte caonhất nằm ở byte 0+) public String getHostAddrees ()Trả về địa chỉ IP của đối tượng InetAddrees dưới dạng một chuỗi được định dạng phânlàm 4 nhóm %d.%d.%d.%d (ví dụ 172.16.9.35).Ví dụ: Cho cấp thấp dùng lớp InetAddrres để lấy về các thông tin của địa chỉ máy chủ.import java.net.*;public class AddrLookupApp{public static void main(String args[]){ Try{ if(args.length!=1){ System.out.println(Usage: java AddrLookupApp );return;}/* Lấy về đối tượng InetAddress chứa thông tin địa chỉ máy chủ */InetAddress host=InetAddress.getByName(args[0]); //Lấy địa chỉ IPString hostName = host.getHostName(); //Lấy tên Host/* Xuất các thông tin ra màn hình */System.out.println(Host name: +hostName); //Xuất tên HostSystem.out.println(IP address: + host.getHostAddress()); //Xuất địa chỉ IP}catch(UnknownHostException e){ System.out.println(Address not found);return;}}}Kết quả: Nếu máy tính của ta có kết nối trực tiếp với Internet ta có thể chạy chươngtrình này để lấy về địa chỉ của những máy chủ nổi tiếng như :C:JavaNet>java AddrLookupApp java.sun.comHost name : java.sun.com //Tên HostIP addrees : 192.9.9.100 //Địa chỉ IP2. Lập trình Socket2.1. SocketLớp Socket dùng tạo kết nối từ phía máy khách với máy chủ. Thường được khởi dựngbằng các phương thức sau:- Các hàm khởi tạo của lớp Socket+ public Socket (String host, int port) throws UnknownHostException, IOExceptionTạo ra một socket kết nối máy tính có tên theo địa chỉ host+ public Socket (InetAddress address, int port) throws IOExceptionTạo ra một socket kết nối từ địc chỉ là đối tượng InetAddress vào số cổng+) public Socket(String host, int port, boolean stream) throws IOExceptionpublicTạo ra một socket kết nối theo địa chỉ host và số cổng, tham số stream cuối cùng để quyđịnh kết nối theo TCP (stream=true) hay UDP (stream = false). Tuy nhiên nếu áp dụng đểtạo socket cho giao thức UDP nên sử dụng lớp thay thế là DatagramSocket.+ public Socket (String host, int port, InetAddress localaddr, int localPort) throwsIOException+ public Socket (InetAddress addr, int localport, boolean b ) throws IOException- Các phương thức thao tác trên Socket+ public InputStream getInputStream() throws IOException+ public OutputStream getOutputStream() throws IOException+ public void close() throws IOException2.2. ServerSocket.Lớp ServerSocket dùng kết nối từ phía máy chủ với các máy khách. Ðối tượngServerSocket được tạo ra trên máy chủ và lắng nghe những kết nối từ phía máy kháchgửi đến theo một số cổng định trước. Ðối tượng ServerSocket được khởi dựng từphương thức sau:- Các hàm khởi tạo của lớp ServerSocket+ public ServerSocket (int port)throws IOException+ public ServerSocket (int port, int count)throws IOException+ public ServerSocket (int port, int count, InetAddr localaddr)throws IOExceptionport là số hiệu cổng mà đối tượng ServerSocket phải lắng nghe để nhận biết những kếtnối từ phía máy khách gửi đến.- Các phương thức thao tác trên ServerSocket+ public Socket accept() throws IOExceptionPhương thức này thực sự dừng lại chờ đợi cho đến khi nhận được thông tin kết nối sẽtrả về đối tượng socket của máy khách nơi có yêu cầu nối với máy chủ.+ public void close() throws IOExceptionCuối cùng máy chủ có thể cắt đứt mọi kết nối bằng cách gọi phương thức close củađối tượng ServerSocket:3. Lập trình TCP3.1. Server- Tạo ServerSocket- Gọi thực thi phương thức accept() để chấp nhận thiết lập kết nối với Client => nhậnđược Socket giao tiếp với Client.- Lấy InputStream và OutputStream để nhận và gửi dữ liệu với Client.- Gửi và nhận dữ liệu với Client, sử dụng các phương thức read() và write() của cáclớp đối tượng InputStream và OutputStream.- Đóng Socket và ServerSocket- Kết thúc chương trìnhServe ...

Tài liệu được xem nhiều: