Presentation is loading. Please wait.

Presentation is loading. Please wait.

S OCKET P ROGRAMMING IN C Professor: Dr. Shu-Ching Chen TA: Hsin-Yu Ha.

Similar presentations


Presentation on theme: "S OCKET P ROGRAMMING IN C Professor: Dr. Shu-Ching Chen TA: Hsin-Yu Ha."— Presentation transcript:

1 S OCKET P ROGRAMMING IN C Professor: Dr. Shu-Ching Chen TA: Hsin-Yu Ha

2 W HAT IS SOCKET ? An interface between an application process An Application Programming Interface (API) used for InterProcess Communications (IPC) It can also be called as Berkeley Socket or BSD Socket

3 T YPES OF SOCKET (1) Address domain Unix domain : address format is Unix pathname Internet domain : address format is host and port number 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

4 T YPES OF SOCKET (2) Stream sockets – connection-oriented (TCP)

5 T YPES OF SOCKET (3) Datagram sockets- connectionless socket (UDP)

6 TCP- BASED SOCKETS

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


Download ppt "S OCKET P ROGRAMMING IN C Professor: Dr. Shu-Ching Chen TA: Hsin-Yu Ha."

Similar presentations


Ads by Google