Sockets IMGD 4000. Outline Socket basics Socket details (TCP and UDP) Socket options Final notes.
Java Huong Dan Lap Trinh Socket UDP-libre
Transcript of Java Huong Dan Lap Trinh Socket UDP-libre
-
8/12/2019 Java Huong Dan Lap Trinh Socket UDP-libre
1/6
Lp trnh UDP Socket
BM MMT - Khoa CNTT H KHTN Page 1
LP TRNH NG DNG UDP SOCKET TRN JAVA
Mc tiu:
Sau bi thc hnh ny, sinh vin c th:
- Hiu c m hnh hot ng chung ca ng dng mng trn giao thc UDP.- Lp trnh ng dng mng vi UDP socket trn ngn ngJava.
Ni dung chnh:
-
M hnh hot ng giao thc UDP- Mt shm c bn ca lp DatagramSocket.- Minh ha ng dng mng n gin sdng DatagramSocket.
-
8/12/2019 Java Huong Dan Lap Trinh Socket UDP-libre
2/6
Lp trnh UDP Socket
BM MMT - Khoa CNTT H KHTN Page 2
1.
M hnh hot ng giao thc UDP (User Datagram Protocol)
- Khi xy dng mt ng dng mng, ta cn thc hin cc bc sau:
o Xc nh kin trc mng: Client-Server hay Peer-to-Peer.
o
Giao thc c sdng tn Transport: TCP, UDP.o Cc port sdng Client v Server.
o Giao thc tn ng dng khi trao i dliu.
o Lp trnh.
- Cc phn di y strnh by cc bc c bn xy dng mt ng dng mng
theo kin trc Client-Server sdng giao thc UDP.
- C hai giao thc chnh c dng truyn ti d liu trong TCP/IP l TCP v
UDP.
- Vi ng dng mng c thit ktheo m hnh ca giao thc UDP thun ty, bn
gi khng c c chm bo tn tin cy ca dliu c truyn ti, ngha
l dliu c truyn c thbmt, sai ni dung hoc thtni dung nhn c
so vi ni dung cn gi sbo ln.
- Tuy nhin, UDP c dng trong cc ng dng yu cu thi gian thc nh truyn
ti Video, Audio, v khnng truyn ti nhanh ca n.
-
S tng tc gia Client v Server theo giao thc UDP nh m hnh sau:
-
8/12/2019 Java Huong Dan Lap Trinh Socket UDP-libre
3/6
Lp trnh UDP Socket
BM MMT - Khoa CNTT H KHTN Page 3
ClientClient Server
Create
Socket
Create
Socket
Bind
CloseClose
Send to
Receive
fromSend to
Receive
from
To socket lng ngheTo socket giao tip
Kt buc vo a ch IPv port
Gi d liu n client
tham s cn truyn vol a ch IP v port mclient ang s dng
Gi d liu n servertham s cn truyn vol a ch IP v port mserver ang lng nghe
Nhn d liu t Client
Nhn d liu t Server
ng kt ni
2. Lp trnh UDP socket trn Java vi lp DatagramSocket:
-
DatagramSocket l lp h tr lp trnh ng dng UDP socket trn Java, phnny sgii thiu mt sphng thc c bn c thxy dng c mt ng
dng UDP socket.
a.
To DatagramSocket:
Public DatagramSocket()
Throws SocketException
o Khi to UDP socket v kt buc n vo mt trong nhng port cn trngca hthng.
Public DatagramSocket( int port)
Throws SocketException
o Khi to UDP socket v kt buc n vo mt port cthc chra.
-
8/12/2019 Java Huong Dan Lap Trinh Socket UDP-libre
4/6
Lp trnh UDP Socket
BM MMT - Khoa CNTT H KHTN Page 4
b.
Kt buc a chcho DatagramSocket
Public void bind ( SocketAddress addr)
Throws SocketException
o
Kt buc DatagramSocket vo mt a chcth(IP v port)
c.
Gi v nhn dliu vi DatagramSocket
DatagramSocket sdng lp DatagramPacket gi v nhn cc gi tin.
- Nhn dliu:
Public DatagramPacket ( byte []buf, int length)
o Khi to 1 DatagramPacket dng nhn 1 packet c di l length,
lengthphi nhhn hoc bng buf.length
o Buf: vng nhm dng lu dliu sp nhn.
o Length: slng byte sc c.
Public void Receive (DatagramPacket p)
Throws IOException
o
Thc hin nhn vpacket tDatagramSocket, khi hm ny c gi thnhcng, buffer ca DatagramPacket schni dung dliu nhn c. ng
thi DatagramPacket cn cha thng tin va chIP v port ca bn gi.
o Phng thc ny khi gi sbBLOCKcho n khi c 1 DatagramPacket
c nhn.
- Gi dliu:
Public DatagramPacket (byte []buf, int length, SocketAddress address)
Throws SocketException
o Khi to 1 DatagramPacket gi 1 packet c di l lengthn cng c
shiu port trn host cthc chra trong address.
-
8/12/2019 Java Huong Dan Lap Trinh Socket UDP-libre
5/6
Lp trnh UDP Socket
BM MMT - Khoa CNTT H KHTN Page 5
Public void send ( DatagramPacket p)Throws IOException
o Gi DatagramPacket n host nhn. DatagramPacket chd liu cn gi,
di dliu, a chIP v shiu port ca host snhn.
- Mt sphng thc htrkhc ca lp DatagramPacket:
Public InetAddress getAddress()
o Trva chIP ca host gi packet hoc host snhn packet.
Public int getPort()
o
Trvgi trport ca host gi packet hoc host m packet sc gin.
Public byte[] getData()
o Trvni dung dliu trong DatagramPacket
Public int getLength()
o
Trvdi ca dliu trong DatagramPacket
d.
ng DatagramSocket :
Public void Close()
3. Minh ha ng dng mng n gin sdng DatagramSocket
a.
bi:
Vit mt ng dng mng trn giao thc UDP h tr chat tun t gia Client
Server theo thtClient Server Client Server Client Server bng
Console. Qu trnh chat skt thc khi mt trong hai bn g Exit.
o
Xc nh kin trc mng: CLIENTSERVER
o Giao thc sdng tn transport: UDP
-
8/12/2019 Java Huong Dan Lap Trinh Socket UDP-libre
6/6
Lp trnh UDP Socket
BM MMT - Khoa CNTT H KHTN Page 6
o Port lng nghe pha server 1234
o Giao thc tng ng dng khi trao i dliu gia client-server
b.
Chng trnh(tham kho source code km theo)
Ti liu tham kho:
http://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramSocket.html
http://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramPacket.html
http://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramSocket.htmlhttp://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramSocket.htmlhttp://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramPacket.htmlhttp://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramPacket.htmlhttp://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramPacket.htmlhttp://docs.oracle.com/javase/1.4.2/docs/api/java/net/DatagramSocket.html