Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Network Programming with Sockets Network Programming Kansas State University at Salina.

Similar presentations


Presentation on theme: "Introduction to Network Programming with Sockets Network Programming Kansas State University at Salina."— Presentation transcript:

1 Introduction to Network Programming with Sockets Network Programming Kansas State University at Salina

2 Protocols Rules that determine how communication is achieved. Human protocols: vocal cords to ears, sign language to eyes, English, French, Spanish… Layers of protocols – may replace any protocol with another functionally equivalent. Network protocols – Ethernet, IP, TCP, UDP, HTTP, SMTP, etc…

3 TCP/IP Transmission Control Protocol/Internet Protocol (TCP/IP)  Suite of small, specialized protocols called subprotocols OSI ModelTCP/IP TCP/IP compared to the OSI Model

4 Internet Protocol (IP) IP datagram  IP portion of TCP/IP frame that acts as an envelope for data  Contains information necessary for routers to transfer data between subnets Components of an IP datagram

5 Transport Control Protocol (TCP) TCP provides reliable end to end communication. A TCP segment

6 User Datagram Protocol (UDP) Connectionless transport service Only four fields in UDP header (10 in TCP header) Unreliable Used for broadcast applications and voice/video data.

7 Getting Data from Source to Destination IP address – IP header Protocol (TCP or UDP) – IP header Port – TCP or UDP protocol A port is a rendezvous point between TCP and the application. A socket allows the application to read from and write to the port.

8 Postal Mail Analogy IP gets the data to the right place. TCP puts the data in the right port (mail box). The socket goes and gets the data from the port (mail box) and delivers it to the application.

9 Sockets API for applications to read and write data from TCP/IP or UDP/IP File abstraction (open, read, write, close) Abstract operating system resource. First introduced with BSD UNIX De-facto standard API for TCP/IP

10 Ports Well Known Ports are in the range of 0 to 1023 only the operating system or an Administrator of the system can access Registered Ports are in the range of 1024 to 49151. Dynamic and/or Private Ports are those from 49152 through 65535 and are open for use without restriction

11 The Socket API Commands See example session Initialize  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  Will always use above options. First option says it is IP version 4 (another value for IP version 6), in UNIX it can also be set to a named pipe. Second option says that it will connect to a TCP port. These names are the original ones used.

12 Socket API (cont.) Server Side sock.bind(( hostname, port ))  Hostname can be one of: socket.gethostname(), ‘localhost’ or the machine host name as a string.  The port should usually be between 1024 to 49151.  Can not bind to a port with another socket bound to it.  Note the double parenthesis, bind() takes a single tuple argument. The extra set of parenthesis makes the two values a tuple.

13 Socket API (cont.) Server Side sock.listen(n)  Tells the socket to listen for incoming connections  n here is an integer for number of new connections to hold in queue. For now, we can set n to 1. (newsock, address) = ss.accept()  Wait for a connection – blocking  Returns a tuple of a new allocated socket and the IP address and port number of the client. The address is a tuple.  A new socket is allocated because a server will usually want to continue listening to the old socket.

14 Socket API (cont.) Client Side sock.connect(( hostname, portNumber ))  Connect to a server that is listening for connections  For most exercises in this class, just set hostname to ‘localhost’.  portNumber should match the port number that the sever was bound to.  A blocking statement, until the connection is established.

15 Socket API (cont.) message = sock.recv(N)  Read a message from the socket and return a string.  N is the maximum message size in characters.  Blocking sock.send( msg )  Send a string messages (msg) over an established socket connection. sock.close()  Always a good idea to close sockets when finished with them.


Download ppt "Introduction to Network Programming with Sockets Network Programming Kansas State University at Salina."

Similar presentations


Ads by Google