Professional Documents
Culture Documents
Lec3 1
Lec3 1
HCM
Bi Gi ng 3
Trang 1
Primitives
SOCKET BIND LISTEN ACCEPT CONNECT SEND RECEIVE CLOSE
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
domain (af): h a ch , th ng s d ng l AF_INET: Internet address type : Ki u socket (SOCK_STREAM, SOCK_DGRAM) protocol : giao th c c dng, default = 0
sockfd: l socket file descriptor tr v t hm socket my_addr : a pointer to a struct sockaddr (ch a: address, port and IP address ...) addrlen = sizeof(struct sockaddr).
Khoa Khoa H c v K Thu t My Tnh Trang 9
int send(int sockfd, const void *msg, int len, int flags); int recv(int sockfd, void *buf, int len, unsigned int flags); int read(int sockfd, const void *buf, int len); int write(int sockfd, const void *buf, int len);
Khoa Khoa H c v K Thu t My Tnh Trang 11
int recvfrom(int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen);
fromlen kh i t o b ng sizeof(struct sockaddr).
Trang 12
Trang 13
SERVER
socket()
bind()
data
sendto() receivefrom()
receivefrom() sendto()
client address
data
close()
close()
Khoa Khoa H c v K Thu t My Tnh Trang 14
receivefrom() close()
client address
NEW PROCESS
data
Trang 15
SERVER
socket() bind() listen()
connect() send()/receive()
connection request
accept() send()/receive()
newsocket
data
close()
close(mainsocket) close(newsocket)
Khoa Khoa H c v K Thu t My Tnh Trang 16
SERVER
connect()
newsocket
send()/receive() close()
data
send()/receive()
NEW PROCESS close(newsocket)
Trang 17
BI T P
Vi t chng trnh nslookup b ng C trn Unix/Linux Vi t echo Client/Server b ng C trn Unix/Linux Vi t m t Web Server c nh ng c i m sau:
H tr phng th c GET (GET xxx.html HTTP/1.0) HTTP p ng c a Server c header nh ExServer/b1.0 H tr multithread V d Browser Request:
GET /intro.html HTTP/1.0 WebServer Response
Server Reponse
case 1: HTTP/1.0 200 OK case 2: HTTP/1.0 404 File Not Found case 3: HTTP/1.0 501 Not Implemented
Khoa Khoa H c v K Thu t My Tnh Trang 23
TONG KET
Khi ni m socket Thi t k gi i thu t cho client v server L p trnh m ng trn Java L p trnh socket trn UNIX
Trang 24