Networking chapter III
-
Upload
jayakumar-balasubramanian -
Category
Technology
-
view
406 -
download
0
description
Transcript of Networking chapter III
![Page 2: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/2.jpg)
Introduction Introduction to sockets The “Endian” concept Trivial functions Socket APIs Client server programming using sockets
![Page 3: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/3.jpg)
Introduction
![Page 4: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/4.jpg)
The “Endian” concept
![Page 5: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/5.jpg)
Big-Endian
![Page 6: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/6.jpg)
Little-Endian
![Page 7: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/7.jpg)
Bit order transformation
![Page 8: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/8.jpg)
Trivial functions
![Page 9: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/9.jpg)
How does one talk to TCP/IP ?
![Page 10: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/10.jpg)
Addressing in IP and TCP
![Page 11: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/11.jpg)
Socket address
![Page 12: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/12.jpg)
Socket APIs
![Page 13: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/14.jpg)
API: bind() [The anchor]
![Page 15: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/16.jpg)
API: connect()
![Page 17: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/18.jpg)
API: listen()
![Page 19: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/20.jpg)
API : accept()
![Page 21: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/22.jpg)
Connection establishment
![Page 23: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/24.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/25.jpg)
API: close() Close terminates both directions of data
transfer, reading and writing.
close( sockfd)
![Page 26: Networking chapter III](https://reader035.fdocuments.us/reader035/viewer/2022062704/55582549d8b42a5e468b519a/html5/thumbnails/26.jpg)
Web : http://www.jwritings.comEmail: [email protected]