
GIẢNG VIÊN:
VÕ TẤN DŨNG
TRƯỜNG CAO ĐẲNG CÔNG NGHỆTHÔNG TIN TP.HCM
LẬP TRÌNH SOCKET
L
LẬ
ẬP TRÌNH SOCKET
P TRÌNH SOCKET
GV: Võ TấnDũng
LẬP TRÌNH ỨNG DỤNG MẠNG
BÀI 2

2
GV: Võ TấnDũng
KHÁI NIỆM SOCKET
KHÁI NIỆM SOCKET
Socket
Socket là
là một
mộtph
phươ
ương
ng pháp
pháp đ
để
ểthiết
thiếtlập
lậpkết
kếtnối
nốitruyền
truyền
thông
thông giữa
giữamột
mộtch
chươ
ương
ng trình
trình yêu
yêu cầu
cầudịch
dịch vụ
vụ(client)
(client)
và
và một
mộtch
chươ
ương
ng trình
trình cung
cung cấp
cấpdịch
dịch vụ
vụ(server)
(server) trên
trên
mạng
mạng LAN, WAN hay Internet.
LAN, WAN hay Internet.
Tr
Trư
ước
ớckhi
khi yêu
yêu cầu
cầudịch
dịch vụ
vụtừ
từmáy
máy chủ
chủthì
thì máy
máy khách
khách
phải
phảikết
kếtnối
nốiđ
đến
ếnmáy
máy chủ
chủ.
. Quá
Quá trình
trình kết
kếtnối
nốinày
này đư
được
ợc
Java
Java thực
thựchiện
hiệnthông
thông quá
quá một
mộtc
cơ
ơchế
chếtrừu
trừut
tư
ượng
ợng
hóa
hóa gọi
gọilà
là Socket
Socket.
.
Việc
Việckết
kếtnối
nốithông
thông qua Socket
qua Socket cần
cầnhai
hai thông
thông tin
tin chủ
chủ
yếu
yếuđ
đó
ólà
là đ
địa
ịachỉ
chỉcủa
củamáy
máy cần
cầnkết
kếtnối
nốivà
và số
sốhiệu
hiệu
cổng
cổng của
củach
chươ
ương
ng trình
trình dịch
dịch vụ
vụ.
.

Lớp InetAddress
& lớp URL
L
Lớ
ớp
pInetAddress
InetAddress
&
& l
lớ
ớp
pURL
URL
GV: Võ TấnDũng
PHẦN 1

4
GV: Võ TấnDũng
Lớp
LớpInetAddress
InetAddress
LớpInetAddress đượcsửdụng để biểudiễncácđịa
chỉIP trong mộtứng dụng mạng. Lớp này đượcsử
dụng bởihầuhếtcáclớpmạng, bao gồmSocket,
ServerSocket, URL, DatagramSocket,
DatagramPacket,…
Nó bao gồmhaitrường thông tin: hostName (mộtđối
tượng kiểu String) và address (mộtsốkiểuint). Các
trường này không phảilàtrường public, vì thếta
không thểtruy xất chúng trựctiếp.

5
GV: Võ TấnDũng
Lớp
LớpInetAddress
InetAddress
Lớp
LớpInetAddress
InetAddress không
không có
có các
các constructor
constructor cho
cho lớp
lớp
InetAddress
InetAddress.
. Tuy
Tuy nhiên
nhiên,
, có
có ba
ba ph
phươ
ương
ng thức
thứctĩnh
tĩnh trả
trảvề
về
các
các đ
đối
ốit
tư
ượng
ợng InetAddress
InetAddress:
:
–
–public static
public static InetAddress
InetAddress InetAddress.getByName(String
InetAddress.getByName(String
hostname)
hostname)
–
–public static
public static InetAddress
InetAddress[]
[] InetAddress.getAllByName(String
InetAddress.getAllByName(String
hostname)
hostname)
–
–public static
public static InetAddress
InetAddress InetAddress.getLocalHost
InetAddress.getLocalHost()
()
Tất
Tấtcả
cảcác
các ph
phươ
ương
ng thức
thứcnày
này đ
đều
ềuthực
thựchiện
hiệnkết
kếtnối
nốitới
tới
server DNS
server DNS cục
cụcbộ
bộđ
để
ểbiết
biếtđư
được
ợccác
các thông
thông tin
tin trong
trong
đ
đối
ốit
tư
ượng
ợng InetAddress
InetAddress.
.

