Chương 5
1
LẬP TRÌNH MẠNG VỚI Java
(Gói thư viện Java.net)
Nội dung
Giới thiệu gói thư viện Java.net
Sử dụng TCP socket
Sử dụng UDP socket
2
RMI và kỹ thuật phân tán đối tượng
Giới thiệu gói thư viện Java.net
Một số lớp cần thiết trong gói thư viện
java.net:
InetAddress: quản lý địa chỉ Internet
Socket: tạo kết nối từ client đến server
ServerSocket: tạo kết nối từ phía server đến
3
ServerSocket: tạo kết nối từ phía server đến
client
DatagramSocket: gửi nhận dữ liệu dưới dạng
gói tin
DatagramPackage: gói tin chứa dữ liệu gửi
nhận sử dụng cho lớp DatagramSocket
URL: địa chỉ định vị tài nguyên trên mạng
Lớp InetAddress
Sử dụng để quản lý địa chỉ host theo tên hay số
Các phương thức thường được sử dụng:
• static InetAddress getLocalHost() :
trả về đối tượng
InetAddress là địa chỉ của máy cục bộ(localhost).
• static InetAddress getByName(String hostName):
• Socket(String hostName,int port):
tạo đối tượng
socket và kết nối đến server hostName ở số hiệu cổng port.
6
• Socket(InetAddress address,int port):
tạo đối
tượng socket kết nối đến address và port.
• Socket(String hostName, int port, boolean
stream):
tạo đối tượng socket kết nối đến hostName và
port, stream=true nếu qui định kết nối theo TCP, stream=false
nếu qui định kết nối theo UDP. Tuy nhiên nếu sử dụng socket
theo UDP thì nên sử dụng lớp DatagramSocket.
Lớp Socket(tt)
Các phương thức thường được sử dụng:
• InputStream getInputStream() :
lấy luồng
nhập để có thể nhận dữ liệu từ máy ở xa.
• OutputStream getOutputStream():
lấy luồng
xuất để có thể gửi dữ liệu đến máy ở xa.
7
xuất để có thể gửi dữ liệu đến máy ở xa.
• InetAddress getInetAddress():
trả về đối
tượng InetAddress chứa địa chỉ của máy đang kết nối
đến.
• int getPort():
trả về số hiệu cổng sử dụng của
máy đang kết nối.
với client.
• void close():
cắt kết nối và đóng socket.
Lớp ServerSocket(tt)-Ví dụ
try{
//Tạo serverSocket lắng nghe ở cổng 12345
ServerSocket server=new ServerSocket(12345);
//Chờ client kết nối đến
Socket client=server.accept();
10
//Tạo InputStream và OutputStream qua socket client
// và bắt đầu gửi nhận dữ liệu…
}
catch(Exception e){
System.out.println(e);
}
Lớp DatagramSocket
Sử dụng giao thức UDP, truyền nhận dữ
liệu dưới dạng gói tin.
Hàm tạo và các phương thức:
• DatagramSocket():
tạo đối tượng socket sử dụng giao thức
11
• DatagramSocket():
tạo đối tượng socket sử dụng giao thức
UDP.
• DatagramSocket(int port):
tạo đối tượng socket và kết
nối đến số hiệu cổng port.
• void send(DatagramPacket p):
• int getLength():
lấy chiều dài gói dữ liệu.