networking chapter iii

26
Compiled by: Jayakumar Balasubramanian Web: http://www.jwritings.com Email: [email protected]

Upload: jayakumar-balasubramanian

Post on 17-May-2015

406 views

Category:

Technology


0 download

DESCRIPTION

Networking chapter - III is about doing network programming using sockets.

TRANSCRIPT

Page 1: Networking chapter III

Compiled by: Jayakumar BalasubramanianWeb: http://www.jwritings.com

Email: [email protected]

Page 2: Networking chapter III

Introduction Introduction to sockets The “Endian” concept Trivial functions Socket APIs Client server programming using sockets

Page 3: Networking chapter III

Introduction

Page 4: Networking chapter III

The “Endian” concept

Page 5: Networking chapter III

Big-Endian

Page 6: Networking chapter III

Little-Endian

Page 7: Networking chapter III

Bit order transformation

Page 8: Networking chapter III

Trivial functions

Page 9: Networking chapter III

How does one talk to TCP/IP ?

Page 10: Networking chapter III

Addressing in IP and TCP

Page 11: Networking chapter III

Socket address

Page 12: Networking chapter III

Socket APIs

Page 13: Networking chapter III

API : Socket ()Use to create a socket.

fd = socket (family, type, protocol)

Family : AF_INET, AF_UNIX, AF_NS Type : SOCK_STREAM, SOCK_DGRAMProtocol : Protocol for a given socket

Page 14: Networking chapter III

API: bind() [The anchor]

Page 15: Networking chapter III

API: bind() Attach a transport address to a socket. status = bind (fd, addressp, addrlen); fd : Socket descriptor addressp : Pointer to address structure addrlen : Size of address structure

Page 16: Networking chapter III

API: connect()

Page 17: Networking chapter III

API : connect()The connect function is used by a TCP client to establish a connection with a TCP server

int fd, status, addrlen; struct sockaddr *addressp; status = connect (fd, addresssp, addrlen);

Page 18: Networking chapter III

API: listen()

Page 19: Networking chapter III

API: listen()listen() Prepares a socket to accept connections Must be used only on the server side of the

application before any connection request is accepted.

int fd, qlen, status; status = listen (fd, qlen);

fd : Socket descriptor qlen : Length of the queue

Page 20: Networking chapter III

API : accept()

Page 21: Networking chapter III

API : accept() Used in the server side of the connection to

accept incoming new connections When requests arrives it creates new socket,

accepts the connection on the new socket

int newfd, addrlen; struct sockaddr * addressp; newfd = accept (fd, addressp, & addrlen);

Page 22: Networking chapter III

Connection establishment

Page 23: Networking chapter III

API : send() Sends data over a communication channel Can be used in server and client side

int fd, len, flags; char *buff; sent = send (fd, buff, len, flags);

sent can be <= len

Page 24: Networking chapter III

API : recv()Receives data over a communication channelCan be used in server and client side

int fd, len, flags, received; char *buff; received = recv (fd, buff, len, flags);

Page 25: Networking chapter III

API: close() Close terminates both directions of data

transfer, reading and writing.

close( sockfd)

Page 26: Networking chapter III

Web : http://www.jwritings.comEmail: [email protected]