You are on page 1of 6

Lp trnh UDP Socket

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 ng Java.

Ni dung chnh:

- M hnh hot ng giao thc UDP


- Mt s hm c bn ca lp DatagramSocket.
- Minh ha ng dng mng n gin s dng DatagramSocket.

BM MMT - Khoa CNTT H KHTN Page 1


Lp trnh UDP Socket

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 s dng tn Transport: TCP, UDP.
o Cc port s dng Client v Server.
o Giao thc tn ng dng khi trao i d liu.
o Lp trnh.
- Cc phn di y s trnh by cc bc c bn xy dng mt ng dng mng
theo kin trc Client-Server s dng 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 k theo m hnh ca giao thc UDP thun ty, bn
gi khng c c ch m bo tn tin cy ca d liu c truyn ti, ngha
l d liu c truyn c th b mt, sai ni dung hoc th t ni dung nhn c
so vi ni dung cn gi s b o ln.
- Tuy nhin, UDP c dng trong cc ng dng yu cu thi gian thc nh truyn
ti Video, Audio, v kh nng truyn ti nhanh ca n.
- S tng tc gia Client v Server theo giao thc UDP nh m hnh sau:

BM MMT - Khoa CNTT H KHTN Page 2


Lp trnh UDP Socket

Client Server

Create Create
To socket giao tip Socket Socket To socket lng nghe

Bind Kt buc vo a ch IP
v port

Gi d liu n server
tham s cn truyn vo Receive Nhn d liu t Client
l a ch IP v port m
Send to
from
server ang lng nghe

Gi d liu n client
Nhn d liu t Server
Receive tham s cn truyn vo
Send to
from l a ch IP v port m
client ang s dng

ng kt ni
Close Close

2. Lp trnh UDP socket trn Java vi lp DatagramSocket:


- DatagramSocket l lp h tr lp trnh ng dng UDP socket trn Java, phn
ny s gii thiu mt s phng thc c bn c th xy 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 trng
ca h thng.

Public DatagramSocket( int port)


Throws SocketException
o Khi to UDP socket v kt buc n vo mt port c th c ch ra.

BM MMT - Khoa CNTT H KHTN Page 3


Lp trnh UDP Socket

b. Kt buc a ch cho DatagramSocket

Public void bind ( SocketAddress addr)

Throws SocketException

o Kt buc DatagramSocket vo mt a ch c th (IP v port)


c. Gi v nhn d liu vi DatagramSocket

DatagramSocket s dng lp DatagramPacket gi v nhn cc gi tin.

- Nhn d liu:

Public DatagramPacket ( byte []buf, int length)

o Khi to 1 DatagramPacket dng nhn 1 packet c di l length,


length phi nh hn hoc bng buf.length
o Buf: vng nh m dng lu d liu sp nhn.
o Length: s lng byte s c c.

Public void Receive (DatagramPacket p)

Throws IOException

o Thc hin nhn v packet t DatagramSocket, khi hm ny c gi thnh


cng, buffer ca DatagramPacket s ch ni dung d liu nhn c. ng
thi DatagramPacket cn cha thng tin v a ch IP v port ca bn gi.
o Phng thc ny khi gi s b BLOCK cho n khi c 1 DatagramPacket
c nhn.
- Gi d liu:

Public DatagramPacket (byte []buf, int length, SocketAddress address)

Throws SocketException

o Khi to 1 DatagramPacket gi 1 packet c di l length n cng c


s hiu port trn host c th c ch ra trong address.

BM MMT - Khoa CNTT H KHTN Page 4


Lp trnh UDP Socket

Public void send ( DatagramPacket p)


Throws IOException

o Gi DatagramPacket n host nhn. DatagramPacket ch d liu cn gi,


di d liu, a ch IP v s hiu port ca host s nhn.
- Mt s phng thc h tr khc ca lp DatagramPacket:

Public InetAddress getAddress()

o Tr v a ch IP ca host gi packet hoc host s nhn packet.

Public int getPort()

o Tr v gi tr port ca host gi packet hoc host m packet s c gi


n.

Public byte[] getData()

o Tr v ni dung d liu trong DatagramPacket

Public int getLength()

o Tr v di ca d liu trong DatagramPacket

d. ng DatagramSocket :

Public void Close()

3. Minh ha ng dng mng n gin s dng DatagramSocket


a. bi:
Vit mt ng dng mng trn giao thc UDP h tr chat tun t gia Client
Server theo th t Client Server Client Server Client Server bng
Console. Qu trnh chat s kt thc khi mt trong hai bn g Exit.
o Xc nh kin trc mng: CLIENT SERVER
o Giao thc s dng tn transport: UDP
BM MMT - Khoa CNTT H KHTN Page 5
Lp trnh UDP Socket

o Port lng nghe pha server 1234


o Giao thc tng ng dng khi trao i d liu 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

BM MMT - Khoa CNTT H KHTN Page 6

You might also like