
1
Lp trình socket
Socket API
❒
ðưa ra trong BSD4.1 UNIX,
1981
❒
Cho phép ng dng to ra và
sdng socket
❒
Nguyên lý client/server
❒
Có hai dng socket
Truyn gói tin, không tin
cy
Truyn dòng bytes, tin cy
Là giao din (ca)
do
ng
d
ng t
o ra trên máy
tr
m, qu
n lý b
i OS
qua
ñó các ng dng có thgi
và nhnthông ñip ñn/t
các ng dng khác
socket
M
c
ñ
ích: làm th
nào
ñ
xây d
ng các
ng d
ng
client/server truy
n d
li
u qua socket

2
Lp trình socket viTCP
Socket: c
a giao ti
p gi
a các ti
n trình và giao th
c
giao v
n (UCP ho
c TCP)
D
ch v
TCP: truy
n các bytes tin c
y t
m
t ti
n trình
ñ
n các ti
n trình khác
Tin trình
TCP vi
Bñm,
Các bin
socket
ðiu khin bi
Lp trình viên
ðiu khin bi
Hñiu hành
Máy trm,
máy ch
Tin trình
TCP vi
Bñm,
Các bin
socket
internet
ðiu khin bi
Lp trình viên
ðiu khin bi
Hñiu hành
Máy trm,
máy ch

3
Lp trình socket viTCP
Client phi gi yêu cu ti server
❒
Tin trình máy chphiñang
ñưc thc hin
❒
máy chphi msocket
(cng) ñ nhn yêu cu t
client
Client yêu cu server bng cách:
❒
To mt socket TCP trên máy
❒
Chrõ IP address & port
number ca tin trình máy ch
❒
Khi client to socket: client
TCP to liên kt ti server
TCP
❒
khi ñưc client liên lc, server
TCP to socket miñ tin
trình máy chgiao tip vi
client
cho phép nói chuyn vi
nhiu clients
phân bit client bng s
hiu cng (chương 3…)
TCP cung c
p d
ch v
truy
n dòng
bytes tin c
y và có th
t
gi
a client và server
ði ving dng

4
Tương tác gia client/server qua socket
TCP
chyêu cu ti
connectionSocket =
welcomeSocket.accept()
to socket,
port=x, cho yêu cu ti:
welcomeSocket =
ServerSocket()
to socket,
kt ni tihostid, port=x
clientSocket =
Socket()
ñóng socket
connectionSocket
ñc trli ti
clientSocket
ñóng
clientSocket
Server
(máy hostid)
Client
gi yêu cu t
clientSocket
nhn yêu cu t
connectionSocket
trli ti
connectionSocket
To liên kt
TCP

5
outToServer
to network from network
inFromServer
inFromUser
keyboard monitor
Process
clientSocket
input
stream
input
stream
output
stream
TCP
socket
Client
process
client TCP
socket
Stream
❒
stream mt chu i ký t
vào/ra mt tin trình.
❒
input stream ñưc g!n vi
mt ngu"n vào, e.g. bàn
phím, socket
❒
output stream ñưc g!n vi
mt ngu"n ra, e.g., màn hình
socket.