Download presentation
Presentation is loading. Please wait.
Published byBarrie Ward Modified over 8 years ago
1
S OCKET P ROGRAMMING IN C Professor: Dr. Shu-Ching Chen TA: HsinYu Ha
2
W HAT IS SOCKET ? An interface between application processes An Application Programming Interface (API) used for InterProcess Communications (IPC) Sockets bound to some IP and port number The socket library provides various system calls Examples: socket(), bind(), listen(), connect(), accept(),send(), recv(), close()
3
C LIENT - SERVER PARADIGM Client: initiates contact with server (“speaks first”) typically requests service from server, For Web, client is implemented in browser; Server: provides requested service to client typically requests service from server, e.g., Web server sends requested Web page.
4
T YPES OF SOCKET (1) Two types of internet Sockets Stream sockets SOCK_STREAM Connection oriented Rely on TCP to provide reliable two-way connected communication Datagram sockets SOCK_DGRAM Rely on UDP Connection is unreliable
5
T YPES OF SOCKET (2) Stream sockets – connection-oriented (TCP)
6
T YPES OF SOCKET (3) Datagram sockets- connectionless socket (UDP)
7
P RIMARY S OCKET C ALLS (1) Socket() : Returns a file descriptor(socket ID) if successful, -1 otherwise. Arguments Domain: set to AF_INET Type: SOCK_STREAM SOCK_DGRAM SOCK_SEQPACKET Protocol: If it is set as zero, then socket will choose the correct protocol based on type. int socket(int domain, int type, int protocol);
8
P RIMARY S OCKET C ALLS (2) Bind() : Associate a socket id with an address to which other processes can connect. Arguments Sockfd: It is the socket id My_addr: a pointer to the address family dependent address structure Addrlen: It is the size of *my_addr int bind(int sockfd, struct sockaddr *my_addr, int addrlen);
9
P RIMARY S OCKET C ALLS (3) Listen() : Return 0 on success, or –1 if failure Arguments Sockfd: It is socket id created by socket() Backlog : It is used to constraint the number of connection int listen(int sockfd, int backlog);
10
P RIMARY S OCKET C ALLS (4) Connect() : connect to a remote host Arguments Sockfd: It is the socket descriptor returned by socket() serv_addr : It is a pointer to to struct sockaddr that contains information on destination IP address and port Addrlen: It is set to sizeof(struct sockaddr) int connect(int sockfd, struct sockaddr *serv_addr, int addrlen);
11
P RIMARY S OCKET C ALLS (5) Accept() : gets the pending connection on the port you are listen()ing on. Arguments Sockfd: It is the same socket id used by listen() Addr: It is a pointer to a local struct sockaddr which stores the information about incoming connection Addrlen: It is set to sizeof(struct sockaddr_in) int accept(int sockfd, struct sockaddr *addr, int *addrlen);
12
P RIMARY S OCKET C ALLS (6) Send() : Send a message. Returns the number of bytes sent or -1 if failure. Arguments Sockfd: It is the same socket id used by socket() or accept() msg: It is the pointer to the data you want to send Len: data length is sizeof(msg) Flags : It is set to be zero int send(int sockfd, const void *msg, int len, int flags);
13
P RIMARY S OCKET C ALLS (7) recv() : Receive up to len bytes in buf. Returns the number of bytes received or -1 on failure. Arguments Sockfd: It is the socket descriptor to read from buf: It is the buffer to read the information info Len: It is the maximum length of the buffer Flags : It is set to be zero int recv(int sockfd, void *buf, int len, unsigned int flags);
14
P RIMARY S OCKET C ALLS (8) shutdown() : disable sending or receiving based on the value how. Arguments Sockfd How Set it to 0 will disable receiving Set it to 1 will disable sending Set it to 2 will disable both sending and receiving int shutdown(int sockfd, int how);
15
P RIMARY S OCKET C ALLS (9) Close() : Close connection corresponding to the socket descriptor and frees the socket descriptor. int close(int sockfd)
16
EXAMPLE – SERVER (1)
17
EXAMPLE – SERVER (2)
18
EXAMPLE – C LIENT (1)
19
EXAMPLE – CLIENT (2)
20
R EFERENCE http://home.iitk.ac.in/~chebrolu/ee673-f06/sockets.pdf ftp://ftp.sas.com/techsup/download/SASC/share5958- 59/S5958v2.pdf http://www.slideshare.net/jignesh/socket-programming-tutorial http://www.rites.uic.edu/~solworth/sockets.pdf Beej's Guide to Network Programming Using Internet Sockets http://beej.us/guide/bgnet/output/html/multipage/index.html http://beej.us/guide/bgnet/output/html/multipage/index.html Sockets Tutorial http://www.linuxhowtos.org/C_C++/socket.htm http://www.linuxhowtos.org/C_C++/socket.htm
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.