You are on page 1of 9

17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

VÉ DOANH NGHIỆP VÉ PHỔ THÔNG


Loại vé cao cấp và sang trọng n… Loại vé phù hợp nhất cho bất c…

19.740.000₫ 700.000₫

BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG

Tap into AdMob and


monetize your app

Get Started

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 2013

Tải bản đầy đủ

https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 1/9
17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

Bài tập thực hành lập trình mạng


Trang 2

Chương 1. URL
1.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…)
Kết quả:

1.2. Viết chương trình liệt kê toàn bộ nội dung của bất kì trang
web nào trên net
Chức năng chương trình:
- Hiển thị thông tin toàn bộ trang web của bất kì trang web nào dưới dạng text
đơn thuần
Cơ chế:
- Gửi địa chỉ URL
- Web server trả lại thông tin
- Truy xuất đến thông tin cần thiết và hiển thị
Các lớp và chức năng các lớp:
- Chỉ gồm một phương thức main:
o Liên kết đến URL với địa chỉ được nhập vào
o Sử dụng phương thức getContent() của đối tượng URL để nhận toàn
bộ nội dung của trang web
Bài tập thực hành lập trình mạng
Trang 3
o Đọc toàn bộ nội dung và hiển thị lên màn hình
Kết quả:
URL = “http://tinchi.dut.edu.vn”

1.3.
Đề bài: Viết chương trình gửi đến URL một chuỗi, mở kết nối từ URL này và hiển
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
Bài tập thực hành lập trình mạng
Trang 4
o In thông báo lỗi nếu có lỗi xảy ra
Kết quả:
URL = “http://tinchi.dut.edu.vn”
Tải bản đầy đủ
1.4.
https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 2/9
17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

Đề 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:
- 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
- Sử dụng phương thức getLocalHost() để lấy thông tin về địa chỉ cục bộ và
hiển thị nó
- Sử dụng phương thức getByName(null) để lấy thông tin về địa chỉ null và
hiển thị nó
- Sử dụng phương thức getByName(URL) để lấy thông tin về địa chỉ URL của
một website và hiển thị nó
- Hiện thị lỗi nếu có
Kết quả:

Bài tập thực hành lập trình mạng


Trang 5
1.5.
Đề bài: Viết chương trình mở kết nối dùng đối tượng URL và kiểm tra các thuộc
tính và nội dung của tài nguyên nhận được.
Chức năng chương trình:
- Hiển thị các thông tin về tài nguyên nhận được trên internet như ngày tạo,
ngày chỉnh sửa sau cùng, ngày hết hạn…

Cơ chế:
Các lớp và chức năng các lớp:
- Tương tự như Net3, thay vì sử dụng phương thức getHeaderField thì sử dụng
getDate(), getContentType()… của đối tượng URLConnection để thay thế

- Duyệt hết toàn bộ nội dung và hiển thị ra màn hình

Kết quả:
URL = “http://tinchi.dut.edu.vn”

Bài tập thực hành lập trình mạng


Trang 6

Bài tập thực hành lập trình mạng


Trang 7
Chương 2. TCP & UDP Socket
2.1. Bài 1
Đề bài: Tạo ra hai ứng dụng độc lập (một client và một server). Client chấp nhận
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
Tảiluồng
bảnnhập
đầyxuấtđủ khi có client truy cập đến (cả client và SERVER),

https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 3/9
17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

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
o Đưa dữ liệu cần gửi hoặc nhận vào các luồng này
o Gửi dữ liệu đến server
Bài tập thực hành lập trình mạng
Trang 8
o Nhận dữ liệu (sau khi server đã xử lí) rồi hiển thị lên màn hình
Kết quả:
SERVER

Client

2.2. Bài 2
Đề bài:Viết ứng dụng để minh họa gửi dữ liệu đến server và client xử lí nó
Ví dụ hai chương trình độc lập chạy trên JAVA: chương trình client và chương trình
server. Chương trình client thực thi một lớp KnockKnockClient. Chương trình server
thực thi hai lớp: KnockKnockServer và KnockKnockProtocol. KnockKnockServer
chứa phương thức main cho chương trình server và mở cổng, kết nối và đọc, gửi dữ liệu
đến socket, còn KnockKnockProtocol xử lí jokes. Nó theo dõi các joke hiện tại, trạng
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:
Bài tập thực hành lập trình mạng
Trang 9
- 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
- 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

CLIENTTải bản đầy đủ

https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 4/9
17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

2.3. Bài 3
Viết chương trình Client – Server sử dụng giao thức TCP thực hiện y/c sau:
Bài tập thực hành lập trình mạng
Trang 10
- Client: gửi y/c hỏi ngày tháng năm hiện tại lên Server.
- Server: gửi trả lời cho Client.
2.4. Bài 4:
Thay đổi chương trình ở bài 1 sao cho cứ 1 giây chương trình Server trả về cho client
thời gian mới.
2.5. Bài 5:
Thay đổi chương trình ở bài 1, cho phép người dùng nhập vào loại yêu cầu (Day,
Month, Year, Hour, Minute, Second), dựa vào loại yêu cầu Server trả về cho client
thời gian mới
2.6. Bài 6:
Viết chương trình client/ Server cho phép người dùng nhập vào 2 số thực và một
phép toán (+, -, *, /) rồi gửi đến chương trình Server. Chương trình Server thực hiện tính
toán kết quả dựa vào phép toán tương ứng và trả kết quả cho chương trình Client.
2.7. Bài 7:
Viết chương trình client/ Server cho phép người dùng nhập vào 1 mảng các số thực gồm n
phần tử rồi gửi đến chương trình Server. Chương trình Server thực hiện sắp xếp mảng tăng
dần rồi gửi mảng đã được sx về cho Client. Hiển thị kết quả ra màn hình.
2.8. Bài 8:
Viết chương trình client/ Server cho phép người dùng nhập vào 2 mảng các số thực gồm n
phần tử rồi gửi đến chương trình Server. Chương trình Server thực hiện cộng 2 mảng rồi
gửi kết quả về cho Client. Hiển thị kết quả ra màn hình.
2.9. Bài 9:
Viết chương trình client/ Server cho phép người dùng nhập vào 1 mảng các số thực gồm n
phần tử rồi gửi đến chương trình Server. Chương trình Server thực hiện tìm số nguyên tố
trong mảng nhận được và gửi kết quả về cho Client. Hiển thị kết quả ra màn hình.
Bài tập thực hành lập trình mạng
Trang 11
Chương 3. Multicast & Broadcast Programming
Multicast is a special feature of UDP protocol that enable programmer to send message to a
group of receivers on a specific multicast IP address and port. Multicast has advantage in
this scenario.
Let us say I want to send “Hello” message to 100 computers on my network. Perhaps, my
first solution is to send the “Hello” message to each of them via UDP or TCP.
What a problem is this scenario?
There are 3 generic problems:
Consume a lot of processing power on sender as it needs to send to every
receiver
Bandwidth flooding
The arrival time is not the same for every receiver
Seeing this problem, I propose my second solution by employing Multicast. Multicast runs
over UDP protocol.
3.1.1. Multicast Principal

3.1.2. Multicast Characteristics


Multicast is using UDP under the hood. So sending and receiving data are much
the same as UDP
The big noticeable from UDP
o Sender should address packages to an IP number in the range between
224.0.0.1 and 239.255.255.254. Please see the full range of Multicast IP
Address
Bài tập thực hành lập trình mạng
Trang 12
o Receivers must join multicast group to receive packet
Several multicast sockets can be bound simultaneously to the same port
(Contrary to UDP and TCP)
Multicast is viable for video conference, service discovery application, etc.
3.1.3. Multicast in Java
MulticastSocket: extension of DatagramSocket
o MulticastSocket
Tải bản đầy socket
đủ= new MulticastSocket(8888);
Join and Leave group
https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 5/9
17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

o joinGroup(InetAddress group)
o leaveGroup(InetAddress group)
3.1.4. Example
Example below is to send multicast message with indexing to multicast IP (224.2.2.3) and
port 8888. If the client wish to receive multicast message, it must join the group with
multicast ip (224.2.2.3) and port 8888.
MulticastSender.java

import java.io.*;
import java.net.*;
public class MulticastSender {
public static void main(String[] args) {
DatagramSocket socket = null;
DatagramPacket outPacket = null;
byte[] outBuf;
final int PORT = 8888;

try {
socket = new DatagramSocket();
long counter = 0;
String msg;

while (true) {
msg = "This is multicast! " + counter;
counter++;
outBuf = msg.getBytes();

//Send to multicast IP address and port


InetAddress address = InetAddress.getByName("224.2.2.3");
outPacket = new DatagramPacket(outBuf, outBuf.length, address,
PORT);

socket.send(outPacket);

System.out.println("Server sends : " + msg);


try {
Thread.sleep(500);
} catch (InterruptedException ie) {
}
Bài tập thực hành lập trình mạng
Trang 13
}
} catch (IOException ioe) {
System.out.println(ioe);
}
}
}

MulticastReceiver
import java.io.*;
import java.net.*;
public class MulticastReceiver {
public static void main(String[] args) {
MulticastSocket socket = null;
DatagramPacket inPacket = null;
byte[] inBuf = new byte[256];
try {
//Prepare to join multicast group
socket = new MulticastSocket(8888);
InetAddress address = InetAddress.getByName("224.2.2.3");
socket.joinGroup(address);
Tải bản đầy đủ
while (true) {
https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 6/9
17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

inPacket = new DatagramPacket(inBuf, inBuf.length);


socket.receive(inPacket);
String msg = new String(inBuf, 0, inPacket.getLength());
System.out.println("From " + inPacket.getAddress() + " Msg : " +
msg);
}
} catch (IOException ioe) {
System.out.println(ioe);
}
}
}

3.2. 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
- Gửi dữ liệu đến địa chỉ multicast
- Nhận dữ liệu từ multicast
- Hiển thị lên màn hình
- Chỉ cần các client tham gia vào group của địa chỉ multicast này thì khi có dữ
liệu được gửi vào đó thì tất cả client đều nhận được
Cơ chế:
- Tham gia vào group của địa chỉ multicast
Bài tập thực hành lập trình mạng
Trang 14
- Gửi dữ liệu đến địa chỉ multicast (Lúc này các client muốn nhận được thì
phải tham gia vào group của multicast đó thì mới nhận được)

- Vì trong chương trình cũng tham gia vào group multicast nên nó cũng sẽ
nhận được dữ liệu khi có client gửi vào địa chỉ này
Các lớp và chức năng các lớp:
- Chạy chương trình gồm 2 đối số: đối số đầu tiên là dữ liệu cần gửi đi, đối số
thứ 2 là địa chỉ multicast
- Chỉ gồm một phương thức main():
- Tạo cổng liên kết đến multicast
- Tham gia vào group multicast
- Chuyển đối số thứ nhất thành mảng byte, rồi tạo đối tượng DatagramPacket
để gửi dữ liệu đi (gọi phương thức send của đối tượng DatagramPacket)
- Gọi phương thức receive để nhận dữ liệu từ địa chỉ multicast
- Rời khỏi nhóm multicast để không nhận dữ liệu từ địa chỉ này nữa

Kết quả:

3.3. Bài 2
Đề bài: Xây dựng chương trình broadcast (quảng bá)
Chức năng chương trình:
- Server gửi dữ liệu đến địa chỉ multicast để nhiều client có thể nhận được
- Các client hiển thị các thông tin nhận được từ server
Cơ chế:
- 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)
Bài tập thực hành lập trình mạng
Trang 15
- 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
Tải bản thức
đầykhở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
https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 7/9
17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

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:
- 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
Kết quả:
Client 1

Client 2
Bài tập thực hành lập trình mạng
Trang 16

Server

3.4. Đề 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
- Thêm một trường vào cơ sở dữ liệu
Cơ chế:
Bài tập thực hành lập trình mạng
Trang 17
- Tạo kết nối đến Driver của hệ quản trị cơ sở dữ liệu
- Từ đó, thực thi câu lệnh xử lí CSDL
- Kiểm tra việc thêm có thành công hay ko, nếu ko thì báo lỗi
Các lớp và chức năng các lớp:
- Lớp chứa hàm main, ko có thuộc tính và phương thức gì khác
- Tạo đối tượng Connection kết nối đến Driver của hệ quản trị CSDL, nếu
việc load driver không thành công thì thoát chương trình
- Tạo đối tượng Statement thực thi câu lệnh xử lí CSDL (ở đây là Insert), sử
dụng phương thức execute để thực thi các lệnh không cần truy vấn, đối số
trả về là kiểu int, trả về 1 nếu thành công, và giá trị khác thì thất bại
Get Students
Chức năng chương trình:
- Kết nối CSDL
- Truy vấn
Cơ chế:
- Tạo kết nối đến Driver của hệ quản trị cơ sở dữ liệu
- Từ đó, thực thi câu lệnh truy vấn CSDL
- Xuất kết quả ra màn hình
Các lớp và chức năng các lớp:
- Tương tự như lớp AddStudent, khi tạo Statement thì sử dụng phương thức
excecuteQuery thay vì execute, kiểu trả về là ResultSet
- Từ ResultSet đã trả về, hiển thị nó lên màn hình
Kết quả ví dụ minh họa:

Tải bản đầy đủ


Bài tập thực hành lập trình mạng
https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 8/9
17/12/2019 BÀI TẬP THỰC HÀNH LẬP TRÌNH MẠNG - Tài liệu text

Trang 18

Tài liệu liên quan

Bài tập thực hành lập trình cơ sở dữ liệu

Bài tập thực hành lập trình hướng đối tượng java cơ bản

Tài liệu ÔN TẬP BÀI TẬP THỰC HÀNH LẬP TRÌNH doc

Tài liệu Bài tập thực hành Lập trình C trên Windows pdf

Tài liệu BÀI TẬP THỰC HÀNH LẬP TRÌNH JAVA ppt

Bài tập thực hành lập trình C nâng cao - Trường Cao đẳng Công nghệ Thông tin Tp. Hồ Chí Minh pdf

Bai tap thuc hanh lap trinh truyen thong

BÀI tập THỰC HÀNH lập TRÌNH

BÀI GIẢNG THỰC HÀNH LẬP TRÌNH WEB

BÀI TẬP THỰC HÀNH LẬP TRÌNH C FOR WINDOWS pot

Tải bản đầy đủ

https://text.123doc.org/document/2700331-bai-tap-thuc-hanh-lap-trinh-mang.htm 9/9

You might also like