TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG VÀ TRUYỀN THÔNG
BÀI TẬP THỰC HÀNH LẬP TRÌNH
MẠNG
Đà Nẵng 2012
Bài tập thực hành lập trình mạng
Chương 1. URL
1.1. Bài 1
Đề bài: Viết chương trình xử lí chuỗi nhập, dùng nó để khởi tạo đối tượng URL và
trả về thuộc tính của nó
Chức năng chương trình:
- Truy cập vào URL, sau đó in các thông tin của tài nguyên như:
o Tên file
o Tên host
o Số hiệu cổng
o Kiểu giao thức (https hoặc http hoặc ftp…)
Cơ chế:
- Client gửi yêu cầu đến SERVER
- SERVER trả về thông tin tài nguyên
- Client xuất ra console
Kết quả:
1.2. Bài 2
Đề bài: Tạo ra 2 ứng dụng độc lập. Ứng dụng đầu tiên nhận câu lệnh cho bảng
students có thuộc tính: name, id và age để thêm vào bảng. Còn ứng dụng thứ hai thì in
ra màn hình thông tin từ bảng students ở trên
Add Student
Chức năng chương trình:
- Kết nối cơ sở dữ liệu
Trang 2
một trong các số sau: 1, 2, 3. Số này sẽ được gửi đến server. Server sẽ trả lại tương
ứng : “ONE” hoặc “TWO” hoặc “THREE” (tùy theo số nhận được). Dùng giao thức
TCP/IP
Chức năng chương trình:
- Client gửi số bất kì đến SERVER
- Nếu là số 1,2,3 thì trả về ONE,TWO,THREE, các trường hợp còn lại trả về
UNKNOWN
Cơ chế:
- SERVER mở cổng để client truy xuất đến
- Tạo các luồng nhập xuất khi có client truy cập đến (cả client và SERVER),
lúc này client và server có thể gửi thông tin qua lại lẫn nhau
- Client truy cập vào, sau đó gửi thông tin đến server
- Server nhận được thông tin, rồi xử lí, sau đó gửi trả lại client
- Client hiển thị thông tin mà server đã trả về
Các lớp và chức năng các lớp:
NumberTCPSimpleServer
- Lớp này có phương thức go(), chức năng của nó:
o Mở cổng của server, tạo kết nối mỗi khi có client kết nối
o Chờ nhận dữ liệu từ Client gửi lên
o Xử lí dữ liệu
o Trả về client
- Phương thức main của lớp này tạo ra đối tượng thuộc lớp
NumberTCPSimpleServer, sau đó gọi phương thức go() của lớp này
NumberTCPSimpleClient
- Phương thức khởi tạo của lớp này có đối số là chuỗi về địa chỉ của server
- Phương thức go():
o Tạo kết nối đến địa chỉ và số hiệu cổng của server
o Tạo các luồng nhập xuất liên kết với server
Trang 4
Bài tập thực hành lập trình mạng
thị thông tin header
Chức năng chương trình:
- Mở kết nối đến địa chỉ URL
- Hiển thị thông tin các header nhận được
Cơ chế:
- Truy xuất đến địa chỉ URL
- Tạo kết nối đến nó
- Lấy thông tin về Header
- Hiển thị lên màn hình
Các lớp và chức năng các lớp:
- Cũng chỉ có phương thức main:
o Tạo URL kết nối đến địa chỉ nhập vào
o Mở kết nối (sử dụng phương thức openConnection của đối tượng
URL)
o Lấy thông tin header (dùng phương thức getHeaderField,
getHeaderFieldKey của đối tượng URLconnection)
o Hiển thị thông tin header
o In thông báo lỗi nếu có lỗi xảy ra
Kết quả:
URL = “”
2.3. Bài 3
Đề bài: Viết chương trình in ra địa chỉ của localhost (địa chỉ cục bộ), null host và
địa chỉ bất kì trên internet
Chức năng chương trình:
Trang 7
Bài tập thực hành lập trình mạng
- Hiển thị thông tin về địa chỉ cục bộ, địa chỉ null và địa chỉ bất kì trên internet
Cơ chế:
Các lớp và chức năng các lớp:
- Tạo đối tượng InetAddress
thái hiện tại (gửi knock knock, gửi clue, v.v…). và trả về giá trị khác nhau của joke của
trạng thái hiện tại. Đối tượng thực thi giao thức xác đinh – ngôn ngữ giao tiếp giữa
client và server
Chức năng chương trình:
- Một chương trình vui nhộn, trao đổi thông điệp client-server qua lại lẫn nhau,
tựa như chat hoặc game
Cơ chế:
- Dùng cơ chế client/server để gửi nhận thông điệp
Các lớp và chức năng các lớp:
- Khi client và server kết nối với nhau thì Server sẽ hiển thị “Knock!Knock!”
- Nếu người sử dụng gửi “Who’s there?”, server sẽ gửi tên hiện tại của người
đó trong chuỗi clues với chỉ số là currentJoke là chỉ số của người hiện tại
Trang 9
Bài tập thực hành lập trình mạng
- Nếu tiếp tục gửi tên của người hiện tại + who? (Tức là hỏi họ là ai), thì nó
kết hợp với chuỗi answers để trả lời cho client
- Server sẽ hỏi có muốn tiếp tục không, nếu client đồng ý thì nó sẽ chuyển đến
người tiếp theo là người hiện hành, cứ như vậy cho đến khi người sử dụng
không muốn tiếp tục nữa
Kết quả:
SERVER
CLIENT
Trang 10
Bài tập thực hành lập trình mạng
Chương 3. Multicast & Broadcast
Programming
3.1. Bài 1
Đề bài: Xây dựng chương trình multicast theo mẫu bên dưới
Chức năng chương trình:
- Tham gia vào group của multicast
- Server đọc từng dòng dữ liệu từ file “one-liners.txt”
- Với mỗi dòng dữ liệu, gửi nó đến địa chỉ multicast là 230.0.0.1, mỗi lần gửi
server tạm dừng vài giây (là bội số của 5)
- Tất cả các client tham gia vào multicast ở trên sẽ nhận được dữ liệu từ server
gửi đến (bình thường nếu theo cơ chế TCP sẽ làm khó hơn)
- Client hiển thị nó lên màn hình của mình, trong chương trình được thiết kế
chỉ nhận 5 dòng
Các lớp và chức năng các lớp:
Lớp QuoteServerThread:
- Có 2 phương thức khởi tạo, không có đối số hoặc có 1 đối số là tên
- Trong phương thức khởi tạo, mở cổng 4445, thực tế cổng số bao nhiêu
không quan trọng trong trường hợp này, vì nó chỉ gửi đến địa chỉ multicast,
đọc dữ liệu từ file “one-liners.txt”
- Phương thức getNextQuote() để đọc từng dòng dữ liệu trong file, trả về giá
trị chuỗi tìm được hoặc “No more quote. Good bye!” nếu không tìm thấy
Lớp MultiserverThread:
- Kế thừa từ lớp QuoteServerThread
- Đọc từng dòng dữ liệu
- Với mỗi dòng dữ liệu thì xử lí:
o Gửi dòng dữ liệu đó đến địa chỉ multicast
o Tạm dừng một thời gian (bội số của 5) giây
Lớp MulticastServer:
Trang 12
Bài tập thực hành lập trình mạng
- Tạo đối tượng MultiserverThread và start nó
Lớp MulticastClient:
- Tham gia vào group multicast của địa chỉ 230.0.0.1
- Nhận dữ liệu từ server gửi đến
- Hiển thị nó trên màn hình
- Chương trình client được thiết kế để nhận 5 dòng dữ liệu