lẬp trÌnh mẠng -...
TRANSCRIPT
-
LP TRNH MNG(Network programming)
1
Ging vin: Ths. Trn c Tt Khoa CNTT
Email: [email protected]
Website: www.oktot.com
Facebook: https://www.facebook.com/oktotcom/
TRNG I HC CNG NGHIP THC PHM TP.HCM
Chng 1: Nhng vn c bn ca lp trnh mng
mailto:[email protected]://www.oktot.com/https://www.facebook.com/oktotcom/
-
MN HC: LP TRNH MNG
2
Chng 1: Nhng vn c bn ca lp trnh mng
Chng 2: Lp trnh SOCKET hng kt ni
Chng 3: Lp trnh SOCKET phi kt ni
Chng 4: S dng cc lp tr giup ca C# SOCKET
Chng 5: Lp trinh a lung (MULTI-THREADING)
Chng 1: Nhng vn c bn ca lp trnh mng
-
3
CHNG 1: NHNG VN C BN CA LP TRNH MNG
C bn v mng my tnh
M hinh truyn thng
Cc m hnh tham chiu
Tng quan v lp trinh mng
Chng 1: Nhng vn c bn ca lp trnh mng
-
4
Mc ch: Gii thiu cc khi nim c bn v
Mng my tnh, truyn thng mng my tnh
M hinh OSI, TCP/IP
Windows Socket
Lp trnh Socket trong C#
Cc lp DNS trong C#
Yu cu: Sinh vin nm vng cc khi nim c bn v
Lp trnh mng
S dng socket trong lp trnh mng
MC CH YU CU
Chng 1: Nhng vn c bn ca lp trnh mng
-
5
CHNG 1: NHNG VN C BN CA LP TRNH MNG
C bn v mng my tnh
M hinh truyn thng
Cc m hnh tham chiu
Tng quan v lp trinh mng
Chng 1: Nhng vn c bn ca lp trnh mng
-
6
C bn v mng my tnh
Chng 1: Nhng vn c bn ca lp trnh mng
-
C bn v mng my tnh
7
Khi nim mng my tnh
Tp hp cc my tnh v thit b mng kt ni vi nhau theo mt kin
trc no trao i d liu
My tnh: my trm, my ch,
b nh tuyn, switch..
Kt ni bng phng tin truyn thng
Theo mt kin trc no
Cc dng my tnh ?
Chng 1: Nhng vn c bn ca lp trnh mng
-
8
C bn v mng my tnh
Internet ngy nay
Chng 1: Nhng vn c bn ca lp trnh mng
-
9
C bn v mng my tnh
X l tp trung hay phn tn
Chng 1: Nhng vn c bn ca lp trnh mng
-
10
C bn v mng my tnh
Kin trc mng: Hnh trng (topology) v giao thc (protocol)
Chng 1: Nhng vn c bn ca lp trnh mng
Thc t l s kt hp ca nhiu hnh trng
Trc (Bus) Vng (Ring) Sao (Star)
-
11
C bn v mng my tnh
Giao thc l g?
Chng 1: Nhng vn c bn ca lp trnh mng
-
12
C bn v mng my tnh
Giao thc mng
Chng 1: Nhng vn c bn ca lp trnh mng 20
Protocol: Quy tc truyn thng
Gi: Mt thng ip vi yu cu hoc thng tin
Nhn: Nhn mt thng ip vi thng tin, s kin hoc hnh ng
nh ngha khun dng v th t truyn, nhn thng ipgia cc thc th trn mng hoc cc hnh ng tng ngkhi nhn thng ip
V d v giao thc mng: TCP, UDP, IP, HTTP,Telnet, SSH, Ethernet,
-
13
CHNG 1: NHNG VN C BN CA LP TRNH MNG
C bn v mng my tnh
M hinh truyn thng
Cc m hnh tham chiu
Tng quan v lp trinh mng
Chng 1: Nhng vn c bn ca lp trnh mng
-
M hnh truyn thng
Chuyn mch knh
Trao i d liu s dng mt knh ring
Mi lin kt s dng mt knh. Ti nguyn ca knh khng c s bi knh
khc cho n khi ng lin kt
Ti nguyn c gn ring cho mi knh, k c khi ti nguyn ang ri, ngi
khc cng khng s dng c
-
M hnh truyn thng
Chuyn mch gi
D liu c chia thnh cc gi(packets) v c truyn qua mng
Nhiu lin kt c th chia s mt knh
Internet (Vi giao thc IP) s dng chuyn mch gi
Ton b bng thng c chia s cho tt c mi ngi
Nu cn bng thng th ai cng c th s dng c
-
16
M hnh truyn thng
So snh
Chng 1: Nhng vn c bn ca lp trnh mng
Chuyn mch knhMi knh ch s dng mt lin kt
Bo m bng thng (cn cho cc ng dng audio/video)
Lng ph nu lin kt khng s dng ht kh nng ca knh
Chuyn mch giTng hiu qu s dng bng thng
Tt cho cc d liu n ngu nhin, khng nh trc
Hn ch: Tc ngh lm tr v mt gi tin, khng m bo bng thng
-
17
M hnh truyn thng
Truyn thng hng lin kt v khng hng lin kt
Truyn thng hng lin kt
D liu c truyn qua mt lin kt c thit lp
Thng qua 3 giai on: Thit lp lin kt, truyn d liu hy b lin
kt.
ng tin cy
Truyn thng khng hng lin kt
Khng thit lp lin kt, ch c giai on truyn d liu
Khng tin cy - Best effort
Chng 1: Nhng vn c bn ca lp trnh mng
-
18
CHNG 1: NHNG VN C BN CA LP TRNH MNG
C bn v mng my tnh
M hinh truyn thng
Cc m hnh tham chiu
Tng quan v lp trinh mng
Chng 1: Nhng vn c bn ca lp trnh mng
-
19
Cc m hnh tham chiu
OSI - Open System Interconnection: Bao gm 7 tng
Chng 1: Nhng vn c bn ca lp trnh mng
-
20
Cc m hnh tham chiu
Chc nng chung ca cc tng
Vt l: Truyn bits trn ng truyn
Lin kt d liu: Truyn d liu gia cc thnh phn ni kt trong mng
Mng: chn ng, chuyn tip gi tin t ngun ti ch
Giao vn: X l vic truyn-nhn d liu cho cc ng dng
Phin: ng b ha, check-point, khi phc qu trnh trao i
Trnh din: cho php cc ng dng biu din d liu, e.g., m ha, nn,
chuyn i
ng dng: H tr cc ng dng trn mng
Chng 1: Nhng vn c bn ca lp trnh mng
-
21
Cc m hnh tham chiu
M hnh OSI v TCP/IP
Trong m hnh TCP/IP (Internet), chc nng 3 tng trn c phn nh
vo mt tng duy nht
Chng 1: Nhng vn c bn ca lp trnh mng
-
Ethernet/10M
CAT5
IP
FTP
TCP
IP
100M/Ethernet
CAT5
IP
FTP
TCP
Ngun chNt trung gian
100M
CAT5
10M
CAT5
V d v qu trnh gi d liu t ngun, qua nt trung gian (b inh tuyn), ri ti ch
Chng 1: Nhng vn c bn ca lp trnh mng
M hnh phn tng ca Internet
-
a ch
Gi qu
Trang tr
Dn a ch
a ch
Chng 1: Nhng vn c bn ca lp trnh mng
ng gi d liu (Encapsulation)
-
(N+1) PDU
(N) PDU
(N-1) PDU
HN
HN HN-1
Layer (N+1)
Layer (N-1)
Layer (N)
Service interface
Protocol N
Service interface
Protocol N-1
addr.
Chng 1: Nhng vn c bn ca lp trnh mng
PDU: Protocol Data Unit n v d liu giao thc
-
Data Data
ExHTTP header
TCP header
IP header
Ethernet Frame
Signal
Application
TCP
IP
Network Interface
Physical
Sender
Bn gi
Mi tng thm cc thng tin iu khin (header) vo gi tin v truyn xung tngdi
Bn nhn
Mi tng x l thng tin da trn phn header, sau b header v truyn d liu ln
tng trn
Physical
Receiver
Application
TCP
IP
Network Interface
H giao thc TCP/IP v qu trnh ng gi
-
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
D
End node
liu - payload
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
TCP header
End node
D liu - payload
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
D liu - payload
Protocol stack v qu trnh ng gi
-
CAT5
End node End nodeIntermediate node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
D liu - payloadEthernet header IP header TCP header
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
D liu - payload
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
D liu - payload
End node
WDM header
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
D liu - payload
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5
End node End nodeIntermediate node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
D liu - payloadEthernet header IP header TCP header
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
D liu - payload
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
TCP header
End node
D liu - payload
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
CAT5
End node Intermediate node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
End node
D liu - payload
Chng 1: Nhng vn c bn ca lp trnh mng
Protocol stack v qu trnh ng gi
-
Chng 1: Nhng vn c bn ca lp trnh mng
Tm tt: u im ca kin trc phn tng
Chia nh cho php d dng xc nh chc nng ca mi tng
Cc tng hot ng c lp
Tng trn ch quan tm n vic s dng tng di m khng quan tm
n cc tng xa hn.
Cho php nh ngha giao din chung gia cc tng
Kh nng m rng
Mm do, linh hot vi cc cng ngh mi
Trao i gia cc tng ng mc: C th ci tin h thng bng cch thay
i cng ngh ca tng tng ng. Vd: ISDNADSLFTTHIPv4IPv6
Nu khng phn tng: Khi mun thay i, phi lm ton b
-
application
TCP/UDP
IP
data linke.g. 00:11:24:79:8e:82
physical
Port Number, e.g. Port 80
IP address, e.g. 203.12.15.165
Physical address / MAC address
Chng 1: Nhng vn c bn ca lp trnh mng
nh danh trn Internet v quan h vi cc tng
-
a ch vt l /a ch MAC
S dng trong tng lin kt d liu
C nh trn card mng NIC ( Network Interface Card)
S dng a ch ha my tnh trong cc mng qung b
00:11:24:79:8e:8200000000 00010001 00100100 01111001 10001110 10000010
HEX
OUI Gn bi nh sn xut
OUI (Organizationally Unique Identifier): M nh sn xut
Mi nh sn xut c cc gi tr OUI ring
Mt nh sn xut c th c nhiu OUI
BIN
Chng 1: Nhng vn c bn ca lp trnh mng
a ch dng trong tng lin kt d liu
-
a ch IP
Dng trong giao thc IP - Internet Protocol (tng mng)
Gi tr ph thuc tng mng, mi card mng c gn mt a ch IP
S dng nh danh my tnh trong mt mng IP
v d :
133.113.215.10 (ipv4)
2001:200:0:8803::53 (ipv6)
Chng 1: Nhng vn c bn ca lp trnh mng
nh danh dng trn Internet
-
Chng 1: Nhng vn c bn ca lp trnh mng
a ch s dng trong tng giao vn
S hiu cng: Mt a ch ph, dng km theo a ch IP
Cc ng dng c nh danh bi mt a ch IP v mt s hiu cng
E.g. HTTP cng 80, FTP cng 20, 21
-
42
Cc RFC quan trng
RFC Document Giao thc
RFC 821 SMTP (email, outgoing)
RFC 954 WHOIS
RFC 959 FTP (uploading and downloading)
RFC 1939 POP3 (email, incoming)
RFC 2616 HTTP (Web browsing)
RFC 793 TCP (runs under all above protocols)
RFC 792 ICMP (ping)
RFC 791 IP (runs under TCP and ICMP)
Chng 1: Nhng vn c bn ca lp trnh mng
-
43
CHNG 1: NHNG VN C BN CA LP TRNH MNG
C bn v mng my tnh
M hinh truyn thng
Cc m hnh tham chiu
Tng quan v lp trinh mng
Chng 1: Nhng vn c bn ca lp trnh mng
-
M hnh Client / Server
44
X l
Yu cu
Phc v
Lng nghe yu cu
Nhn yu cu
X l yu cu
Gi kt qu tr v
cho Client
To ra 1 yu cu
Gi yu cu qua Server
Ch Server x l
Nhn kt qu tr v v
x l theo mc ch ring
Dng thc ca thng ip phi tun theo protocol ca dch v.
-
M hnh Client / Server
Web Client
Web Serverfile1.htm
Trnh duytTrang
Web
X l
M hnh Client-Server ca dch v WEB:
-
M hnh Client / Server
Cc ch giao tip:
Ch giao tip nghn Ch giao tip khng nghn
-
Cc kiu kin trc chng trnh
Chc nng ca 1 chng trnh ng dng:
Giao din ngi dng (User Interface):
Tng tc vi ngi dng
Nhp liu, bo biu, thng bo ra mn hnh,
Dch v nghip v (Business Rule):
Tnh ton d liu
X l thng tin
Dch v lu tr (Data Storage):
Lu tr d liu
Truy vn d liu
-
Cc kiu kin trc chng trnh
GOLDMAN: CSIS FIG. 01-11
Presentation
Application
Data
Communication
Presentation Logic
Interfaces to Presentation GUI
Business Logic Actual Program
Rules
Database Logic Interfaces to DBMS
in Data Layer
Presentation Logic
Interfaces to Presentation GUI
Business Logic Actual Program
Rules
Database Logic Interfaces to DBMS
in Data Layer
Presentation
Application
Data
CLIENT SERVER
M hinh ca 1 chng trinh ng dng
-
Cc kiu kin trc chng trnh
Kin truc n tng:
User Interface
Business Rule
Data Storage
S dng trn 1 my tnh
D ci t
Nhiu nhc im
Cn c kin trc mi Client/Server
-
Cc kiu kin trc chng trnh
Kin truc 2 tng (2-tiered):
Client/Server kiu Fat Client
Client/Server kiu Fat Server
-
Cc kiu kin trc chng trnh
51
Kin truc a tng (n tiered):
Thng gi l ng dng phn tn.
Mi thnh phn c nhim v ring.
M hnh Client/Server 3 tng
Client
Application Server
Database Server
Middleware
-
Cc kiu kin trc chng trnh
GOLDMAN: CSIS FIG. 01-24
Fat Client Fat Server
TWO-TIERED ARCHITECTURE
THREE-TIERED ARCHITECTURES
Presentation Logic
Database Logic
Middleware
CLI
EN
TS
TIE
R 1
TIE
R 2
DE
PA
RTM
EN
TAL
SE
RV
ER
S
TIE
R 3
SU
PE
R-S
ER
VE
RS
M
AIN
FRA
ME
S
Business Logic
Database Logic
Business Logic
Presentation Logic Presentation Logic
Business Logic
Database Logic
So snh kin truc 2 tng v kin truc
3 tng ca ng dng
-
53
Sockets cung cp mt interface lp trnh mng ti tng Transport.
Mt socket l mt end-point ca mt lin kt gia hai ng dng mng.
Nhiu NNLT: C, C++, Java, VB, C#, . . .
Windows Socket Application Programming Interface (Winsock API)
Winsock h tr xy dng cc ng dng mng trn nn TCP/IP.
.NET h tr lp trnh mng tt nht so vi cc sn phm khc ca
Microsoft
=> Mc tiu: nghin cu cch xy dng ng dng truyn thng
client/server dng Sockets
Gii thiu v Socket
Chng 1: Nhng vn c bn ca lp trnh mng
-
54
Gii thiu v Windows Socket
Windows Sockets Application Programming Interface (WinSock API) l
mt giao din lp trnh mng di nn tng ca Windows.
u tin Windows Socket c pht trin cho h iu hnh Linux,
nhng nay n c ci t trn Windows v h tr c ch iu
khin thng ip t nhin ca Windows.
Windows Socket pht trin qua nhiu phin bn
Vd phin bn chy
trn Windows XP v 2000 l 2.2
Gii thiu v Socket
Chng 1: Nhng vn c bn ca lp trnh mng
-
55
Gii thiu v Windows Socket
Windows Sockets cho php nhng nh sn xut cung cp mt giao
din ng nht ngi lp trnh c th vit cc chng trnh ng
dng theo nhng c t ca Windows Sockets v c th chy c
trn bt k h thng no c h tr Windows Sockets.
Cc phin bn sau ca Windows socket u tng thch vi cc phin
bn trc ca n. iu c ngha l mt ng dng c vit cho
phin bn trc cng hon ton c th chy c trn phin bn sau
ca Windows Sockets.
Windows Sockets h tr nhiu giao thc khc: IPX/SPX, Apples
Appletalk, ATM,.
Gii thiu v Socket
Chng 1: Nhng vn c bn ca lp trnh mng
-
56
Mt s khi nim
Socket: Mt im giao tip u cui ca mt chng trnh trn mng.
Mt TCP/IP Sockets c xc nh bng s kt ni ca mt a ch v
mt s hiu cng
a ch s xc nh my m Sockets lm vic
Cng s xc nh chnh xc tin trnh ang thc hin Sockets trn
my c a ch .
Gii thiu v Socket
Chng 1: Nhng vn c bn ca lp trnh mng
-
57
Khi nim a ch v cng (Address & Port)
Chng 1: Nhng vn c bn ca lp trnh mng
-
58
Khi nim a ch v cng (Address & Port)
Chng 1: Nhng vn c bn ca lp trnh mng
Nguyn ly
Trong my c rt nhiu ng dng mun trao i vi cc ng dng khc
thng qua mng.
V d: c 2 ng dng ca my A mun trao i vi vi 2 ng dng trn my
B
Mi my tnh ch c duy nht mt ng truyn d liu ( gi v nhn)
Vn
C th xy ra "nhm ln" khi d liu t my A gi n my B th trn my
B khng bit l d liu gi cho ng dng no?
Mi ng dng trn my B s c gn mt s hiu (cng: Port), t
0..65535.
-
59
Khi nim a ch v cng (Address & Port)
Chng 1: Nhng vn c bn ca lp trnh mng
Cch gii quyt
Khi ng dng trn my A mun gi cho ng dng no trn my B th ch
vic in thm s hiu cng (vo trng RemotePort) vo gi tin cn gi.
Trn my B, cc ng dng ch vic kim tra gi tr cng trn mi gi tin
xem c trng vi s hiu cng ca mnh ( c gn chnh l gi tr
LocalPort) hay khng? Nu bng th x l, tri li th khng lm g (v
khng phi l ca mnh).
-
60
Khi nim a ch v cng (Address & Port)
Chng 1: Nhng vn c bn ca lp trnh mng
Mt s quy nh
Khng bao gi c 2 ng dng li cng dng 1 port
Cc port t 0 1023 (Well-know): dng cho cc ng dng quan trng
trn h iu hnh
Cc port t 1024 49151 (Registered): dnh cho ngi lp trnh (khuyn
co tun theo)
Cc port t 49152 65535 (Dynamic): d tr
-
61
Giao tip s dng socket c th ch hng kt ni (giao thc TCP)
hoc khng hng kt ni (giao thc UDP) bng cch xc nh giao thc
ca tng vn chuyn.
Lp trnh Socket vi C#
Chng 1: Nhng vn c bn ca lp trnh mng
port port
Network driver
Network protocol
Transport protocol
Network driver
Network protocol
Transport protocol
Program A Program B
Host1 Host2
Giao tip gia hai qu trnh s dng Socket
port port
-
62
Lp trnh Socket vi C#
Chng 1: Nhng vn c bn ca lp trnh mng
Ch c ni kt (connection):
Tn ti knh giao tip o gia client v server.
D liu c gi i theo ch bo m:
Kim tra li.
Truyn li gi tin li, mt
Bo m th t cc gi tin
. . .
D liu chnh xc, Tc truyn chm.
Ch khng ni kt
(connectionless):
Khng tn ti knh giao tip o gia
client v server.
D liu c gi i theo ch khng bo m:
Khng kim tra li.
Khng pht hin, khng truyn li
gi tin li, mt.
Khng bo m th t cc gi tin
. . .
D liu khng chnh xc, tc
truyn nhanh.
Thch hp cho cc ng dng cn tc
, khng cn chnh xc cao: truyn
m thanh, hnh nh . . .
-
63
Giao tip s dng socket c th ch hng kt ni (giao thc TCP)
hoc khng hng kt ni (giao thc UDP) bng cch xc nh giao thc
ca tng vn chuyn.
Lp trnh Socket vi C#
Chng 1: Nhng vn c bn ca lp trnh mng
-
64
Cc lp trong .NET Framework c to ra cung cp mt giao din
d dng cho cc lp trnh vin.
Ni dung phn ny s gm:
IP Addresses in C#
Using C# Sockets
Lp trnh Socket vi C#
Chng 1: Nhng vn c bn ca lp trnh mng
-
Lp IPAddress
Trn Internet mi mt trm (c th l my tnh, my in, thit b ) u cmt nh danh duy nht, nh danh thng c gi l mt a ch(Address).
a ch trn Internet l mt tp hp gm 4 con s c gi tr t 0-255 vcch nhau bi du chm.
th hin a ch ny, ngi ta c th vit di cc dng sau:
Tn: v d nh May01, Server,
a ch IP nhng t trong mt chui: "192.168.1.1", "127.0.0.1
t trong mt mng 4 byte, mi byte cha mt s t 0-255.
Hoc cng c th l mt s (long), c di 4 byte. V d, vi a ch192.168.1.2 trn th gi tr s l 33663168 (s h thp phn khi xplin 4 byte trn li vi nhau) 00000010000000011010100011000000
13/07/2016 652 (byte 0) 1 (byte 1) 168 (byte 2) 192 (byte 3)
-
Lp IPAddress
Nh vy, i mt a ch chun ra dng s chng ta ch vic tnh ton
cho tng thnh phn.
V d: i a ch 192.168.1.2 ra s, ta tnh nh sau:
2 * 256 ^ 3 + 1 * 256 ^ 2 + 168 * 256 ^ 1 + 192 * 256 ^ 0 =
33663168
IPAddress c s dng biu hin mt a ch IP duy nht
Hm to l : public IPAddress(long address)
Tuy nhin hm to ny khng c s dng thng xuyn.
Lp IPAddress cung cp mt s phng thc khc lm vic vi a ch
IP
13/07/2016 66
-
Lp IPAddress: cc thnh vin
Tn phng thc M t
AddressFamily
Tr v h a ch ca a ch IP hin hnh. Nu a ch
dng IPv4 th kt qu l Internetwork v
InternetworkV6 nu l a ch IPv6.
Constructor
- IPAddress(S_Long) To a ch IP t mt s
kiu long
- IPAddress(Mng_Byte) To a ch IP t mt
mng byte (4 byte).
GetAddressBytes Chuyn a ch thnh mng byte (4 byte).
HostToNetworkOrdero th t byte ca mt s cho ng vi th t byte
trong a ch IPAddress.
13/07/2016 67
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/P_System_Net_IPAddress_AddressFamily.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_IPAddress_GetAddressBytes.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/O_T_System_Net_IPAddress_HostToNetworkOrder.htm
-
Lp IPAddress: cc thnh vin
Tn phng thc M t
IsLoopback Cho bit a ch c phi l a ch lp hay khng?
NetworkToHostOrdero th t byte ca mt a ch cho ng vi th t
byte thng thng.
ParseChuyn mt a ch IP dng chui thnh mt a ch
IP chun (Mt i tng IPAddress)
ToStringTr v a ch IP (mt chui) nhng dng k php
c du chm. (V d "192.168.1.1").
TryParse (S: String)Kim tra xem mt a ch IP ( dng chui) c phi
ng l a ch IP hp l hay khng? True = ng
13/07/2016 68
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_IPAddress_IsLoopback_1_60004a31.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/O_T_System_Net_IPAddress_NetworkToHostOrder.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_IPAddress_Parse_1_16219e3a.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_IPAddress_ToString.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_IPAddress_TryParse_1_c5158803.htm
-
IPAddress: V d to a ch
Cch 1: Dng hm khi to
Byte[] b = new Byte[4];
b[0] = 192;
b[1] = 168;
b[2] = 1;
b[3] = 2;
IPAddress Ip1 = new IPAddress(b);
Cch 2: Dng hm khi to
IPAddress Ip2 = new IPAddress(33663168);
Cch 3: Dng hm khi to
IPAddress Ip3 = IPAddress.Parse(192.168.1.2")
Cch 4: Thng qua tnh ton
Long So = 192* 256^0+168* 256^1+1* 256^2 + 2*256^3;
IPAddress Ip4 = new IPAddress(So);
13/07/2016 69
-
Lp IPAddress: cc thnh vin
Tn thuc tnh M t
Any
Cung cp mt a ch IP (thng l 0.0.0.0) ch ra rng
Server phi lng nghe cc hot ng ca Client trn tt c
cc Card mng (s dng khi xy dng Server). Thuc tnh
ny ch c.
Broadcast
Cung cp mt a ch IP qung b (Broadcast, thng l
255.255.255.255), dng s Long. Mun ly dng chui,
vit: Broadcast.ToString(). Thuc tnh ny ch c.
LoopbackTr v mt a ch IP lp (IP Loopback, v d 127.0.0.1).
Thuc tnh ny ch c.
Address
Mt a ch IP (An Internet Protocol (IP) address) dng s
Long. (Mun chuyn sang dng du chm, vit :
Address.ToString())
13/07/2016 70
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/F_System_Net_IPAddress_Any.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/F_System_Net_IPAddress_Broadcast.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/F_System_Net_IPAddress_Loopback.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/P_System_Net_IPAddress_Address.htm
-
IPAddress: V d kim tra a ch
private void KiemTra()
{
IPAddress ip;
String Ip4 = "127.0.0.1";
String Ip5 = "999.0.0.1";
MessageBox.Show(IPAddress.TryParse(Ip4, out ip).ToString());
MessageBox.Show(IPAddress.TryParse(Ip5, out ip).ToString());
}
13/07/2016 71
-
IPAddress: V d chuyn a ch hin hnh ra mng
void ChuyenDoi()
{
IPAddress Ip3 = new IPAddress(16885952);
Byte[] b= new Byte[4];
b = Ip3.GetAddressBytes();
MessageBox.Show("Address: " + b[0] + "." + b[1] + "." + b[2] + "." + b[3]);
}
13/07/2016 72
-
Lp IPEndpoint
Trong mng, hai trm c th trao i thng tin c vi nhau th chng
cn phi bit c a ch (IP) ca nhau v s hiu cng m hai bn dng
trao i thng tin.
Lp IPAddress mi ch cung cp a ch IP (IPAddress), nh vy vn cn
thiu s hiu cng (Port number).
.NET Framework s dng IPEndPoint biu din mt s kt hp gia
cng v a ch IP
Hai hm to ca lp ny l:
IPEndPoint(long address, int port)
IPEndPoint(IPAddress address, int port)
Hm to th 2 c s dng ph bin hn
13/07/2016 73
-
Lp IPEndpoint: cc thnh vin
Tn thuc tnh M t
Address Tr v hoc thit lp a ch IP cho endpoint. (Tr v mt i tng IPAddress)
AddressFamily Ly v loi giao thc m Endpoint ny ang s dng.
Port Ly v hoc thit lp s hiu cng ca endpoint.
13/07/2016 74
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/P_System_Net_IPEndPoint_Address.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/P_System_Net_IPEndPoint_AddressFamily.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/P_System_Net_IPEndPoint_Port.htm
-
Lp IPEndpoint: cc thnh vin
Tn phngthc
M t
IPEndPoint (Int64, Int32)
To mt i tng mi ca lp IPEndPoint, tham s truyn vo l a ch IP ( dng s) v cng s dng giao tip.
IPEndPoint (IPAddress, Int32)
To mt i tng mi ca lp IPEndPoint, Tham s truyn vo l mt a ch IPAddress v s hiu cng dng giao tip. (Tham kho cch to IPAddress phn trn)
Create To mt endpoint t mt a ch socket (socket address).
ToString Tr v a ch IP v s hiu cng theo khun dng aCh: Cng, v d: 192.168.1.1:8080
13/07/2016 75
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/C_System_Net_IPEndPoint_ctor_1_da075419.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/C_System_Net_IPEndPoint_ctor_1_7fcfd676.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_IPEndPoint_Create_1_791bdf8d.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_IPEndPoint_ToString.htm
-
Lp IPEndpoint: v d khi to
private void TaoEndpoint()
{
// To mt a ch IP
IPAddress IPAdd = IPAddress.Parse("127.0.0.1");
// Truyn vo cho hm khi to to IPEndpoint
IPEndPoint IPep = new IPEndPoint(IPAdd, 10000);
}
13/07/2016 76
-
Lp IPEndpoint: v d khi to
private void TaoEndPointBoiTenMay()
{
IPAddress IPAdd = new IPAddress();
//to i tng IP t tn ca my thng qua phng thc tnhDns.GetHostAddresses ca lp DNS
IPAdd = Dns.GetHostAddresses("Localhost")[0];
IPEndPoint IPep = new IPEndPoint(IPAdd, 10000);
}
13/07/2016 77
-
Lp IPEndpoint: v d khi to
Lu : V mt my tnh c th c nhiu card mng (Interface) do vy c
th c nhiu hn 1 a ch IP.
Hm GetHostAddresses s tr v cho chng ta mt mng cha tt c cc
a ch .
Chng ta ly ch s l 0 chn a ch ca card mng u tin.
IPHostEntry l lp cha (Container) v thng tin a ch ca cc my trm
trn Internet.
Lu : N ch l ni "cha", do vy trc khi s dng cn phi np"
thng tin vo cho n.
Lp ny rt hay c dng vi lp DNS
13/07/2016 78
-
Lp IPHostEntry: cc thnh vin
Tn thuc tnh M t
AddressList Ly v hoc thit lp danh sch cc a ch IP lin kt vi
mt host.
Aliases Ly v hoc thit lp danh sch cc b danh (alias) lin kt
vi mt host.
HostName Ly v hoc thit lp DNS name ca host.
13/07/2016 79
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/P_System_Net_IPHostEntry_AddressList.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/P_System_Net_IPHostEntry_Aliases.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/P_System_Net_IPHostEntry_HostName.htm
-
S dng C# Sockets
13/07/2016 80
System.Net.Sockets namespace c cha cc lp cung cp giao din lp
trinh Net cho cc hm mc thp API winsock
To socket
S dng hm to ca lp Socket
Socket(AddressFamily af, SocketType st, ProtocolType pt)
Trong :
An AddressFamily to define the network type:
A SocketType to define the type of data connection
A ProtocolType to define a specific network protocol
Gi tr ca AddressFamily lun l InterNetwork
Cn gi tr ca SocketType v ProtocolType phi c kt hp ung
-
S dng C# Sockets
13/07/2016 81
Bng kt hp
SocketType Protocoltype Description
Dgram Udp Connectionless communication
Stream Tcp Connection-oriented communication
Raw Icmp Internet Control Message Protocol
Raw Raw Plain IP packet communication
V d v to Socket
Socket newsock = Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
-
S dng C# Sockets
13/07/2016 82
Mt s thuc tnh ca lp Socket
Property Description
AddressFamily Gets the address family of the Socket
Available Gets the amount of data that is ready to be read
Blocking Gets or sets whether the Socket is in blocking mode
Connected Gets a value that indicates if the Socket is connected to a
remote device
Handle Gets the operating system handle for the Socket
LocalEndPoint Gets the local EndPoint object for the Socket
ProtocolType Gets the protocol type of the Socket
RemoteEndPoint Gets the remote EndPoint information for the Socket
SocketType Gets the type of the Socket
-
DNS (Domain Name Service)
13/07/2016 83
DNS (Domain Name Service) l mt lp giup chung ta trong vic phn gii
tn min (Domain Resolution) n gin.
Phn gii tn min tc l: u vo l tn ca my trm thi u ra s cho
ta a ch IP tng ng ca my , v d: ServerCNTT 192.168.3.8
Ngoi ra lp Dns cn c rt nhiu phng thc cho chung ta thm thng
tin v my cc b nh tn, a ch, v.v.
System.Net namespace c cha lp Dns trong c cha tt c cc hm
cn thit khi ta lm vic vi h thng tn min.
Trong cc phng thc ny c
Cc phng thc ng b
Cc phng thc khng ng b
-
Lp DNS: cc thnh vin
Tn phng thc M t
GetHostByAddress
(String IP)
GetHostByAddress
(IPAddress IP)
Tr v thng tin (IPHostEntry) ca trm c a
ch IP c truyn vo.
Thay bng GetHostEntry()
GetHostByName
(String hostname)
Tr v thng tin (IPHostEntry) DNS ca mt
trm b loi b. Thay bng
GetHostEntry()
HostName Cho ta bit tn ca my va c phn gii.
Nu khng phn gii c th c gi tr l a
ch IP.
13/07/2016 84
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/O_T_System_Net_Dns_GetHostByAddress.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/O_T_System_Net_Dns_GetHostByAddress.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_Dns_GetHostByName_1_16219e3a.htm
-
Lp DNS: cc thnh vin
Tn phng thc M t
GetHostAddresses (String
IP_Or_HostName)
Tr v tt c cc a ch IP ca mt trm. Kiu
IPAddress
GetHostEntry (String
IP_Or_HostName)
GetHostEntry (IPAddress IP)
Gii p tn hoc a ch IP truyn vo v tr
v mt i tng IPHostEntry tng ng.
GetHostName Ly v tn ca my tnh cc b (String).
Resolve (String Hostname) Chuyn tn ca my hoc a ch IP thnh
IPHostEntry tng ng.
b b, thay bng GetHostEntry()
13/07/2016 85
Lu : y l cc phng thc tnh, do vy khi gi thi gi trc tip t tn lp m khng cn phi khai bo mt i tng mi ca lp ny.
V d: Dns.Resolve, Dns.GetHostname, Dns.GetHostEntry, v.v
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_Dns_GetHostAddresses_1_16219e3a.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/O_T_System_Net_Dns_GetHostEntry.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/O_T_System_Net_Dns_GetHostEntry.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_Dns_GetHostName.htmms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref10/html/M_System_Net_Dns_Resolve_1_16219e3a.htm
-
Lp DNS: v d 1
13/07/2016 86
private void ShowIPs()
{
// Ly tt c a ch IP ca my
IPAddress[] add = Dns.GetHostAddresses("PC");
foreach (IPAddress ip in add) {
MessageBox.Show(ip.ToString());
}
//Cch 2
//for (int i = 0; i < add.Length; i++)
//{
// MessageBox.Show(add[i].ToString());
//}
}
-
Lp DNS: v d 2
13/07/2016 87
private void CreatIPHostEntry() {
IPHostEntry iphe1, iphe2, iphe3;
IPAddress ipadd = IPAddress.Parse("127.0.0.1");
iphe1 = Dns.GetHostEntry("Notebook");
iphe2 = Dns.GetHostEntry("127.0.0.1");
iphe3 = Dns.GetHostEntry(ipadd);
MessageBox.Show(iphe1.HostName); MessageBox.Show(iphe2.HostName) ;
MessageBox.Show(iphe3.HostName) ;
}
-
88
C bn v mng my tnh
M hinh truyn thng
Cc m hinh tham chiu
Tng quan v lp trinh mng
TM LC BI HC
Chng 1: Nhng vn c bn ca lp trnh mng
-
89Chng 1: Nhng vn c bn ca lp trnh mng