WizIQ helps you learn and teach online - any subject you can think of!
Join for FREE

Socket Programming - Introduction

Add to Favourites
Post to:

Description
Sockets, accept(), bind()

Comments
Lalitha
By: Lalitha
446 days 21 hours 48 minutes ago

how to download this content.b'coz i didn't recieve any mail with the link for the above content

Lalitha
By: Lalitha
446 days 21 hours 12 minutes ago

i need a copy of this presentation

Presentation Transcript Presentation Transcript

Slide 1 : 2008/6/24 Vasantha IT1351 1

Slide 2 : 2008/6/24 Vasantha IT1351 2 A socket is a virtual connection between two applications Using a socket, two processes can communicate with each other The socket is the major communication tool for Internet applications A socket is bi-directional (full-duplex) transmission A socket can be created dynamically

Slide 3 : 2008/6/24 Vasantha IT1351 3 Network Socket as a virtual connection between two processes (physical connection) Host B Process 2 Host A Process 1 Information Hiding

Slide 4 : 2008/6/24 Vasantha IT1351 4 Socket as a client/server model

Slide 5 : 2008/6/24 Vasantha IT1351 5 What is “port”? If we do not have “ports”, what would happen? 146.163.147.81

Slide 6 : 2008/6/24 Vasantha IT1351 6 146.163.147.81

Slide 7 : 2008/6/24 Vasantha IT1351 7

Slide 8 : 2008/6/24 Vasantha IT1351 8 SERVER bind() listen() accept() read() write() close() CLIENT socket() connect() write() close() socket() read() Application Programming Interface

Slide 9 : 2008/6/24 Vasantha IT1351 9 Functions and parameter format (for server side) (1) create socket: socket_id = socket (AF_INET, SOCK_STREAM,IPPROTO_TCP); (2) bind socket: bind (socket_id, server_addr, server_len); (3) listen to socket: listen (socket_id, number_of_connection); (4) accept a connection: accept (socket_id, &client_addr, &client_len); (5) read (receive) data: read (socket_id, buffer, buffer_len); (6) write (send) data: write (socket_id, buffer, buffer_len); (7) close socket: close(socket_id);

Slide 10 : 2008/6/24 Vasantha IT1351 10 Functions and parameter format (for client side) (1) create socket: same as server socket_id = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); (2) connect socket: connect (socket_id, serverINETaddress, server_len); (3) write (send) data: write (socket_id, buffer, buffer_len); (4) read (receive) data: read (socket_id, buffer, buffer_len); (5) close socket: same as server close(socket_id);

Slide 11 : 2008/6/24 Vasantha IT1351 11 “*” indicates a blocking function call. SERVER bind() listen() accept() read() CLIENT socket() connect() write() socket() * * * 1: Connection Request 2. Send a command 3. Receive the result read() We are not doing this... *

Slide 12 : 2008/6/24 Vasantha IT1351 12 unsigned int socket_id = socket (AF_INET, SOCK_STREAM, 0);

Slide 13 : 2008/6/24 Vasantha IT1351 13 It connects a process to a specific port After bind(_) call: Port Numbers: 0~1023: System Reserved Port 21: FTP Port 23: telnet Port 80: HTTP 1024 and above: available to users

Slide 14 : 2008/6/24 Vasantha IT1351 14 int status = bind (socket_id, (struct sockaddr_in *) my_addr, sizeof(my_addr));

Slide 15 : 2008/6/24 Vasantha IT1351 15 struct sockaddr_in my_addr; /* My (client) Internet address */

Slide 16 : 2008/6/24 Vasantha IT1351 16 After listen(_) call: 6500 listen (socket_id, number_of_connection);

Slide 17 : 2008/6/24 Vasantha IT1351 17 int status = listen (socket_id, 3);

Slide 18 : 2008/6/24 Vasantha IT1351 18 Step 4 - Part 1: accept( ) call After accept(_) call: 6500

Slide 19 : 2008/6/24 Vasantha IT1351 19 The accept(_) call returns another port number and establish another connection Client 7100 6500

Slide 20 : 2008/6/24 Vasantha IT1351 20 unsingned int child_sock = accept (socket_id, (struct sockaddr_in *) client_addr, sizeof (client_addr);

Slide 21 : 2008/6/24 Vasantha IT1351 21 Step 5: read( ) and write( ) call Client 7100 6500

Slide 22 : 2008/6/24 Vasantha IT1351 22 int status = recv (socket_id, in_buffer, MAX_BUFFER_SIZE, 0); Example: char in_buffer [MAX_BUFFER] On success, the number of bytes received

Slide 23 : 2008/6/24 Vasantha IT1351 23 int status = send (socket_id, out_buffer, MAX_BUFFER_SIZE, 0); On success, the number of bytes actually sent

Slide 24 : 2008/6/24 Vasantha IT1351 24 Step 6: close ( ) call Client Server 7100 6500

Slide 25 : 2008/6/24 Vasantha IT1351 25 int status = close (socket_id);

Slide 26 : 2008/6/24 Vasantha IT1351 26 Step 7: Go back to accept( ) call Client Server 6500

Slide 27 : 2008/6/24 Vasantha IT1351 27 Thank You! Queries ??? Thank U !!!

Want to learn?

Sign up and browse through relevant courses.

Name:
Your Email:
Password:
Country:
Contact no.:


Area code Number
Subject you are interested in:
Word verification: (Enter the text as in image)


Sign Up Already a member? Sign In
I agree to WizIQ's User Agreement & Privacy Policy
1 Follower

Your Facebook Friends on WizIQ