SOCKET PROGRAMMING Presented By : Divya Sharma
Overview What are sockets ? What is file descriptor ? Protocols Client – Server paradigm Socket API TCP(Transmission Control Protocol) UDP(User Datagram Protocol)
What are Sockets ? A socket is defined as an endpoint of communication Service access point of TCP/IP protocol stack • between Application layer and Transport layer A file descriptor that lets an application read/write data from/to the network Once configured the application can • Send data to the socket • Receive data from the socket
What is file descriptor ? Text Terminal Keyboard #x sock #stdin Program Internet #1stdout Display #2stden E.g. cout writes data to stdout #(1) cin read data from stdin #(0)
A socket is a file descriptor that lets an application read/write from/to the network int fd; /*socket descriptor*/ if ((fd = socket(AF_INET, SOCK-STREAM, 0)) < 0) } fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) } perror(“socket”); exit(1); socket returns an integer(socket descriptor) fd < 0} indicates that an error occurred Socket descriptor s are similar to file descriptors AF_INET: associates a socket with the internet protocol family SOCK_STREAM: selects the TCP protocol SOCK_DGRAM: selects the UDP protocol
Protocols A protocol is a set of rules of communication. Protocols are the building blocks of a network architecture. Each protocol object has two different interfaces: service interface: operations on this protocol peer-to-peer interface: messages exchanged with peer Term “protocol” is overloaded specification of peer-to-peer interface module that implements this interface
Client - Server paradigm Server waits for client to request a connection. Client contacts server to establish a connection. Client sends request. Server sends reply. Client and/or server terminate connection.
Socket API Server and client exchange messages over the network through a common Socket API CLIENTS SERVER User space PORTS TCP/UDP TCP/UDP Kernel space SOCKET API IP IP Ethernet Adapter Ethernet Adapter Hardw-are
Example TCP applications Transmission Control Protocol (TCP) TCP Reliable - guarantee delivery Byte stream - in - order delivery Connection - oriented - single socket per connection Setup connection followed by data transfer Telephone call Guaranteed delivery In order delivery Connection oriented Setup connection followed by conversation Example TCP applications Web, E-mail, Telnet
Review: TCP Client - server interaction TCP Server socket( ) bind( ) TCP Client listen( ) socket( ) accept( ) Connection establishment connect( ) Data request write( ) read( ) Data reply write( ) read( ) read() close( ) end – of - file notification close()
User Datagram Protocol (UDP) Single socket to receive messages No guarantee of delivery Not necessarily in – order delivery Datagram - independent packets Must address each packet Post Mail Single mail box to receive letters Unreliable Not necessarily in - order delivery Letters send independently Must address each reply Example UDP applications Multimedia, voice over IP
blocks until datagram received from a client Review: UDP Client – server interaction UDP Server socket( ) UDP client bind( ) socket( ) sendto( ) recvfrom( ) data request blocks until datagram received from a client data reply sendto() recvfrom( ) close( ) close( )
TCP vs. UDP Transmission Control Protocol (TCP) One - to - one Connection - oriented Reliable In order delivery Transmission after connect User Datagram Protocol (UDP) One to one or many Connectionless Unreliable Unordered delivery Transmission with destination address
Final thoughts Make sure to #include the header files that defines used functions Check man – pages and web – site for additional information
Thank You