Tải bản đầy đủ (.pdf) (32 trang)

Tài liệu Chương 5 LẬP TRÌNH MẠNG VỚI Java pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (239.74 KB, 32 trang )

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):


trả về đối tượng InetAddress là địa chỉ của máy có tên là
4
trả về đối tượng InetAddress là địa chỉ của máy có tên là
hostName.
• static InetAddress[] getAllByName(String
hostName)
:
trả về tất cả các đối tượng InetAddress là địa chỉ của
máy có tên là hostName.
• byte[] getAddress():
trả về địa chỉ IP của đối tượng
InetAddress dưới dạng chuỗi byte.
• string getHostAddress():
trả về địa chỉ IP của đối tượng
InetAddress dưới dạng string.
Lớp InetAddress(tt)-Ví dụ
try{
//Lấy đối tượng InetAddress chứa thông tin về máy chủ
InetAddress host=
InetAddress.getByName(“www.hcmutrans.edu.vn”);
5
Sytem.out.println(“Host Name :”+host.getHostName());
Sytem.out.println(“IP Address:”+host.getHostAddress());
}
catch( UnknownHostException e){
System.out.println(“Address not found!”);
}
Lớp Socket
 Sử dụng cho client kết nối đến server
 Các hàm tạo

• 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.

• void close():
đóng socket, cắt kết nối.
Lớp Socket(tt)-Ví dụ
try{
//Kết nối đến máy chủ
Socket mySocket=new Socket(“www.hcmutrans.edu.vn”,8080);
//Luồng nhâp để nhận dữ liệu
DataInputStream inStream=new DataInputStream(mySocket.getInputStream());
//Luồng xuất để gửi dữ liệu
DataOutputStream outStream=new DataOutputStream(mySocket.getOutputStream());
8
DataOutputStream outStream=new DataOutputStream(mySocket.getOutputStream());
//Bắt đầu gửi nhận dữ liệu qua inStream và outStream …
}
catch(Exception e){
System.out.println(e);
}
Lớp ServerSocket
 Sử dụng cho server, tạo socket và lắng
nghe kết nối trên một port
 Hàm tạo và các phương thức:
• ServerSocket(int port):
tạo đối tượng socket và lắng
9
• ServerSocket(int port):
tạo đối tượng socket và lắng
nghe ở port.
• Socket accept():
dừng lại và đợi client kết nối đến, khi
nhận được thông tin kết nối sẽ trả về đối tượng Socket 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):

gửi gói tin p đi.
• void receive(DatagramPacket p):
nhận gói tin p về.
• void close():
đóng socket.
Lớp DatagramPacket
 Khai báo gói tin gửi đi trên mạng qua kết nối
DatagramSocket.
 Hàm tạo và các phương thức:
• DatagramPacket(byte buffer[], int len):
tạo gói tin
có dữ liệu chứa trong
buffer,
chiều dài
buffer

len
.
12
• DatagramPacket(byte buffer[], int len,
InetAddress dest, int port)
:
tạo gói tin gửi đến địa chỉ
dest với số hiệu cổng port.
• InetAddess getAddress():
lấy địa chỉ chứa trong gói tin.
• int getPort():
lấy số hiệu cổng chứa trong gói tin.
• byte[] getData():
lấy dữ liệu trong gói tin.

• int getLength():
lấy chiều dài gói dữ liệu.

×