30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
De cuongthuchanhct221 hk2_1920_n1
1. 1
ĐỀ CƯƠNG THỰC HÀNH
Học phần: Lập Trình mạng (CT221) - Nhóm 1-2-3
Học kỳ 2, năm học 2019-2020
Buổi 1: Socket TCP
Bài 1: Viết chương trình theo mô hình Client-Server sử dụng Socket ở chế độ
có nối kết.
Trong đó:
Server làm nhiệm vụ đọc 1 ký tự số từ ký tự '0' đến ký tự '9'.
Ví dụ : nhận ký tự 0 : trả về chuỗi "khong" ,
ký tự 1 : trả về chuỗi "mot" ;
…
ký tự 9 : trả về chuỗi "chin"
nhận ký tự khác số thì trả về chuỗi "Không phải số nguyên" .
Client sẽ nhập vào 1 ký tự, gửi qua Server, nhận kết quả trả về từ
Server (là 1 chuỗi các ký tự) và hiện thị lên màn hình. Kết thúc khi
nhập vào ký tự ‘@’.
---------------------------------------!!!!!------------------------------
CLIENT
import java.net.*;
import java.io.*;
class ClientDocSo {
public static void main(String[] args) {
try {
// Noi ket den Server
Socket s = new Socket("127.0.0.1", 7000);
// Lay 2 stream nhap xuat: is - os
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
while(true) {
// Nhap 1 ky tu tu ban phim
System.out.print("Nhap 1 ky tu so: ");
int ch = System.in.read();
// Gui qua Server
os.write(ch);
System.in.skip(2); // Bo 2 ky tu rn
// Kiem tra dieu kien de thoat
if(ch=='@') break;
// Nhan ket qua tra ve
byte b[] = new byte[50];
int n = is.read(b);
// Hien thi ket qua
String ketqua = new String(b,0,n);
System.out.println("Nhan duoc: " + ketqua);
}
// Dong noi ket
s.close();
}
catch(IOException e) {
System.out.println("Co loi khi thuc thi");
}
}
}
SERVER
import java.net.*;
import java.io.*;
class Worker extends Thread{
2. 2
Socket s;
public Worker(Socket param) {
s = param;
start();
}
public void run() {
try {
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
while(true) {
// Nhan yeu cau tu Client
int ch = is.read();
// Kiem tra dieu kien de thoat
if(ch=='@') break;
// Xu ly yeu cau
String kq = "Khong biet";
switch(ch) {
case '0': kq="Khong"; System.out.println("Da tra loi: " + kq); break;
case '1': kq="Mot"; System.out.println("Da tra loi: " + kq); break;
case '2': kq="Hai"; System.out.println("Da tra loi: " + kq); break;
case '3': kq="Ba"; System.out.println("Da tra loi: " + kq); break;
case '4': kq="Bon"; System.out.println("Da tra loi: " + kq); break;
case '5': kq="Nam"; System.out.println("Da tra loi: " + kq); break;
case '6': kq="Sau"; System.out.println("Da tra loi: " + kq); break;
case '7': kq="Bay"; System.out.println("Da tra loi: " + kq); break;
case '8': kq="Tam"; System.out.println("Da tra loi: " + kq); break;
case '9': kq="Chin"; System.out.println("Da tra loi: " + kq); break;
}
// Gui ket qua cho Client
byte b[]=kq.getBytes();
os.write(b);
}
// Dong noi ket
s.close();
System.out.println("Client o dia chi: " +
s.getInetAddress().toString() + " da thoat");
} catch (IOException e) {
System.out.println("Co loi khi tao luong doc va gui
du lieu");
}
}
}
public class ServerDocSo {
public static void main(String[] args) {
try {
// Tao Server Socket cong 7000
ServerSocket ss = new ServerSocket(7000);
System.out.println("Da tao xong Server Socket");
while(true) {
// Chap nhan cho noi ket
Socket s = ss.accept();
System.out.println("Co 1 Client noi ket o dia
chi: " + s.getInetAddress().toString());
Worker wk = new Worker(s);
} //end of while
}
catch(IOException e) {
System.out.println("Khong khoi tao duoc Server");
3. 3
}
}
}
Bài 2 : Viết chương trình theo mô hình Client-Server sử dụng TCP Socket.
Trong đó:
Client: nhập vào từ bàn phím 1 chuỗi số nguyên và gửi cho Server.
Server làm nhiệm vụ đổi chuỗi số nguyên nhận được thành chuỗi số nhị
phân và gửi trả lại cho Client. Nếu Server nhận được chuỗi không phải
là số nguyên thì gửi trả lại câu thông báo “Không phải là số nguyên”.
Buổi 2: Socket TCP – Server phục vụ song song
Bài 1 : Viết chương trình theo mô hình Client-Server sử dụng TCP Socket.
Trong đó:
Client: nhập vào từ bàn phím 1 chuỗi họ và tên và gửi cho Server.
Server làm nhiệm vụ đổi tách tên của chuỗi vừa nhận và gửi trả lại cho
Client. Lưu ý thiết kế Server phục vụ song song.
Bài 2: Viết chương trình theo mô hình Client-Server sử dụng TCP Socket.
Trong đó:
Server sẽ nhận từ Client câu lệnh dạng sau: “LIST Tênthưmục”
Server sẽ gửi cho Client danh sách các file và thư mục con hiện có trong
thư mục đó, nếu thư mục tồn tại.
Client sẽ cho phép người dùng nhập câu lệnh, gửi qua Server, nhận kết
quả từ Server và hiển thị ra màn hình.
Bài 3: Viết chương trình theo mô hình Client-Server sử dụng TCP Socket.
Trong đó:
Server sẽ nhận từ Client câu lệnh dạng sau: “READ Tênfile”
Server sẽ đọc nội dung file được yêu cầu trên Server và gửi cho Client
nội dung đó.
Client sẽ nhận dữ liệu từ Server và lưu lại thành 1 file kết quả tại Client.
Buổi 3: Socket UDP
Bài 1 : Cài đặt dịch vụ DATETIME (RFC 867) sử dụng Socket UDP cổng 13.
Trong đó:
Client sẽ gửi cho Server 1 gói tin UDP với nội dung là rỗng. Chờ nhận
phản hồi từ Server và hiển thị lên màn hình nội dung đó.
Server nhận được yêu cầu từ Client, sẽ trả lời lại “Ngày và giờ hệ
thống”.
Bài 2 : Viết chương trình theo mô hình Client-Server sử dụng UDP Socket.
Trong đó:
Server sẽ nhận từ Client 1 gói có nội dung như sau: “READUDP
Tênfile”
Server sẽ gửi cho Client nội dung file theo yêu cầu nếu file nhỏ hơn
64KB. Nếu file không tồn tại thì gửi gói có chiều dài là 0.
Client sẽ cho phép người dùng nhập tên file, nhận kết quả từ Server và
lưu lại thành 1 file khác tại Client.
Bài 3 : Viết chương trình Talk theo chế độ không nối kết cho phép hai người
trên hai máy tính trò chuyện với nhau.
Buổi 4: Socket TCP với các dịch vụ Internet, Multicast Socket
4. 4
Bài 1 : Viết chương trình nhận đối số là một URL dạng Web. Nối kết đến
Web Server trong URL để lấy trang web về và hiển thị nội dung file HTML
đó ra màn hình.
Bài 2 : Viết chương trình gửi 1 email (nội dung bất kỳ) đến 1 địa chỉ mail
khi biết địa chỉ của 1 SMTP Server.
Có thể thử SMTP Server:
+ smtp.saix.net (địa chỉ nhận support@saix.net, địa chỉ nhận từ …… @ …..
.vn)
+ smtp.mtnl.net.in (địa chỉ nhận support@mtnl.net.in) => không cho phép
relay.
Bài 3: Viết chương trình UDP Server định kỳ 30s gửi 1 file cho trước đến 1
địa chỉ lớp D.
Xây dựng Client sử dụng Multicast Socket gia nhập vào nhóm địa chỉ đó để
nhận file.
Buổi 5: RMI
Bài 1: Xây dựng lớp DiemRMI:
+ Thuộc tính x và y: kiểu integer
+ Phương thức cục bộ: hàm xây dựng, hàm nhập giá trị từ bàn phím, hàm
hiển thị
+ Các phương thức cho phép gọi từ xa: lấy chuỗi tọa độ, gán điểm, dời
điểm.
Viết Server tạo ra 3 điểm A, B và C cho phép truy cập từ xa.
Viết Client: sử dụng 3 điểm A, B, C trên Server. Thử nghiệm các hàm gọi từ
xa.
Bài 2: Xây dựng một ứng dụng phục vụ việc bán vé máy bay cho các đại lý
phân tán ở các tỉnh thành khác nhau. Ứng dụng này có các lớp sau:
o Lớp chuyến bay: đại diện cho một chuyến bay
Có các thuộc tính: Số hiệu chuyến bay, Ngày giờ bay, Nơi
đi, Nơi đến, Thời gian bay, Tổng số ghế, Số lượng ghế đã
bán, Số lượng ghế còn trống.
Các phương thức trên một chuyến bay: xem thông tin về
chuyến bay, phương thức mua vé, phương thức trả vé. Để
phục vụ cho nhiều đại lý, các phương thức trên thuộc loại
được gọi từ xa.
o Server: tạo ra nhiều chuyến bay và duy trì nó để cho phép các đại lý
thực hiện các giao dịch trên chuyến bay cụ thể.
o Client là chương trình cho phép mỗi đại lý được quyền xem thông
tin về chuyến bay, mua vé, trả vé theo yêu cầu.