Computer_Network_Chapter07_TransportLaye.pdf is a presentation file to learn about transport layer's computer network. Help you deeper understanding and lab easily. This presentation file be writen by Bui Minh Tuan (bmtuan@ctu.edu.vn) - a lecture in Can Tho University.
Computer_Network_Chapter08_ApplicationLaye.pdf is a presentation file to learn about application layer's computer network. Help you deeper understanding and lab easily. This presentation file be writen by Bui Minh Tuan (bmtuan@ctu.edu.vn) - a lecture in Can Tho University.
Lecture 11 - Cau truc du lieu Queues.pptxMinhcNguyn61
油
De cuongthuchanhct221 hk2_1920_n1
1. 1
畛 C働NG TH畛C HNH
H畛c ph畉n: L畉p Tr狸nh m畉ng (CT221) - Nh坦m 1-2-3
H畛c k畛 2, nm h畛c 2019-2020
Bu畛i 1: Socket TCP
Bi 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 lm 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 vo 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 mn h狸nh. K畉t th炭c khi
nh畉p vo 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
}
}
}
Bi 2 : Vi畉t ch動董ng tr狸nh theo m担 h狸nh Client-Server s畛 d畛ng TCP Socket.
Trong 坦:
Client: nh畉p vo t畛 bn ph鱈m 1 chu畛i s畛 nguy棚n v g畛i cho Server.
Server lm nhi畛m v畛 畛i chu畛i s畛 nguy棚n nh畉n 動畛c thnh 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
Bi 1 : Vi畉t ch動董ng tr狸nh theo m担 h狸nh Client-Server s畛 d畛ng TCP Socket.
Trong 坦:
Client: nh畉p vo t畛 bn ph鱈m 1 chu畛i h畛 v t棚n v g畛i cho Server.
Server lm 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.
Bi 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 mn h狸nh.
Bi 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 thnh 1 file k畉t qu畉 t畉i Client.
Bu畛i 3: Socket UDP
Bi 1 : Ci 畉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 mn h狸nh n畛i dung 坦.
Server nh畉n 動畛c y棚u c畉u t畛 Client, s畉 tr畉 l畛i l畉i Ngy v gi畛 h畛
th畛ng.
Bi 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 di 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 thnh 1 file kh叩c t畉i Client.
Bi 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
Bi 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 mn h狸nh.
Bi 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.
Bi 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 vo nh坦m 畛a ch畛 坦 畛
nh畉n file.
Bu畛i 5: RMI
Bi 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畛: hm x但y d畛ng, hm nh畉p gi叩 tr畛 t畛 bn ph鱈m, hm
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 hm g畛i t畛
xa.
Bi 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 thnh kh叩c nhau. 畛ng d畛ng ny 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, Ngy 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.