COMP2322 Lab 4 Socket Programming

Slides:



Advertisements
Similar presentations
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Advertisements

© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
(4.4) Internet Protocols Layered approach to Internet Software 1.
COEN 445 Communication Networks and Protocols Lab 4
HTTP: the hypertext transfer protocol
Hypertext Transfer Protocol Kyle Roth Mark Hoover.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
TCP/IP summary Skills: none IT concepts: review This work is licensed under a Creative Commons Attribution-Noncommercial- Share Alike 3.0 License.
Layer 7- Application Layer
Introduction to Management Information Systems Chapter 5 Data Communications and Internet Technology HTM 304 Fall 07.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Application Layer PART VI.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Socket Lab Info. Computer Network. Requirement Use TCP socket to implement a pair of programs, containing a server and a client. The server program shall.
HTTP HTTP stands for Hypertext Transfer Protocol. It is an TCP/IP based communication protocol which is used to deliver virtually all files and other.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
Network Services Networking for Home & Small Business.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
Chapter 1: The Internet and the WWW CIS 275—Web Application Development for Business I.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
Discussion 2 Sockets Programming Applets TCP UDP HTTP Delay Estimation
Operating Systems Recitation 9, May 19-20, Iterative server Handle one connection request at a time. Connection requests stored in queue associated.
Application Layer 2-1 ESERCITAZIONE SOCKET PROGRAMMING.
Vassil Roussev 2 A socket is the basic remote communication abstraction provided by the OS to processes. controlled by operating system.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
CS 241 Section (04/19/12). MP8  Web Server  Due: Tuesday, May 1 st, 11:59pm  What will you be doing?  Creating a web-server in C that serves HTML.
Dr. John P. Abraham Professor University of Texas Pan American Internet Applications and Network Programming.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
TCP Sockets Reliable Communication. TCP As mentioned before, TCP sits on top of other layers (IP, hardware) and implements Reliability In-order delivery.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
Distributed Computing A Programmer’s Perspective.
CSI 3125, Preliminaries, page 1 Networking. CSI 3125, Preliminaries, page 2 Networking A network represents interconnection of computers that is capable.
TCP/IP. The idea behind TCP/IP is exactly the same we explained about the OSI reference model: when transmitting data, programs talk to the Application.
COMP2322 Lab 4 Socket Programming Toby Lam March 2, 2016.
1 K. Salah Application Layer Module K. Salah Network layer duties.
Process-to-Process Delivery:
IST 201 Chapter 11 Lecture 2. Ports Used by TCP & UDP Keep track of different types of transmissions crossing the network simultaneously. Combination.
Application Layer Functionality and Protocols Abdul Hadi Alaidi
Instructor Materials Chapter 5 Providing Network Services
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
CISC103 Web Development Basics: Web site:
Sockets and Beginning Network Programming
Client-Server Model and Sockets
Networking COMP
MCA – 405 Elective –I (A) Java Programming & Technology
Socket Programming Cal Poly Pomona Young CS380.
TCP Transport layer Er. Vikram Dhiman LPU.
Working at a Small-to-Medium Business or ISP – Chapter 7
HTTP: the hypertext transfer protocol
Web Development & Design Chapter 1, Sections 4, 5 & 6
Working at a Small-to-Medium Business or ISP – Chapter 7
Chapter 2 Application Layer
CISC103 Web Development Basics: Web site:
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
The Internet and HTTP and DNS Examples
Computer Communication & Networks
Chapter 14 User Datagram Protocol (UDP)
Application layer Lecture 7.
Working at a Small-to-Medium Business or ISP – Chapter 7
Process-to-Process Delivery:
Starting TCP Connection – A High Level View
Web Server Technology Unit 10 Website Design and Development.
Internet Protocols IP: Internet Protocol
ECE 4450:427/527 - Computer Networks Spring 2017
Internet Applications & Programming
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Exceptions and networking
Presentation transcript:

COMP2322 Lab 4 Socket Programming Yuvraj Sahni March 8, 2017

Requirement Experience in Python Programming Python for Programmers https://wiki.python.org/moin/BeginnersGuide/Programmers Learn Python Online https://www.codecademy.com/learn/python http://www.learnpython.org/

Simple Example Suppose I am interested in knowing the latitude and longitude of The Hong Kong Polytechnic University I can enter the following URL in the browser to obtain the information (in JSON format) http://maps.google.com/maps/api/geocode/json?address=The Hong Kong Polytechnic University&sensor=false&region=Hong Kong

Client/Server Model

Client/Server Model Examples of Client Examples of Server Google Chrome, Firefox Examples of Server Apache, IIS

Make a Raw HTTP Connection

socket in Python Instead of making an HTTP request through httplib package We can make the request by using socket socket – support basic network communications on an IP network Low-level approach Raw network communication A matter of sending and receiving strings

Make a Request By Socket

Network Sockets Used to identify particular processes (programs) on particular machines Network Socket is composed of 2 numbers: IP address – machine identifier Port number – process identifier Well-known ports: 25 – SMTP (email), 80 - HTTP (web), 110 – POP3 (email), 443 – HTTPS (secure web)

Network Sockets Socket() used in previous example is NOT the lowest protocol level The layers below the socket() are: Transmission Control Protocol (TCP) One alternative to TCP is UDP (we focus on TCP in this lab) Internet Protocol (IP) Link layer

“Passive” Listening Socket VS Active “Connected” Socket Server The server is a machine that is ready to receive connections It holds the address and the port number Passive Listening Socket It DOES NOT represent any actual network conversation <= no data can be received / sent by this kind of port! (Q: HOW it works then ???)

“Passive” Listening Socket vs Active “Connected” Socket When the server get the request from the passive listening socket Server checks with the OS willingness to receive incoming connections If NO, drop the request If YES, an active connected socket is then created Bind this socket to one remote conversation partner Example: A busy web server, a thousand active sockets bind to its public IP address at port 80

A Simple TCP Client and Server

A Simple TCP Client and Server

Limitations At the moment, the message must be fixed to 16 characters (octets)! Solution: Client side, before sending the message Determine the length of the message L [Assume max. number of length is 255] Add L at the beginning of the message Send the new message to server Server side, after receiving the message Extract the length of the message (first 3 characters) Read the rest of the message with the proper length

Modified TCP Client and Server

Modified TCP Client and Server

Lab Exercise (Total mark: 55) [1 / 2] 1. Create 2 Python files (10 marks) Client file - client_studentID.py Server file - server_studentID.py E.g. if my student ID is 12345678d, name the client file as client_12345678d.py 2. Provide your full name and student ID (5 marks) At the beginning of each Python program, by using program comment, provide the following information Your full name Your student ID

Lab Exercise (Total mark: 50) [2 / 2] 3. Create a simple instant messaging system (25 marks) The messaging system should let the client and server send the message in one by one approach (20 marks) (more detail description is shown in next page) Coding - easy to read (5 marks) if there is any syntax error in your programs (i.e. cannot run), ZERO mark will be given in this section.

Message in one by one approach Message in one by one approach IS NOT the same as common messaging platform!! It works like this: Server is waiting for connection Client is connected to Server Client sends a message Server receives the message Server sends a message Client receives the message Go back to (3) until Client/Server sends message “BYEBYE.”

Remote case conversion 4. Create an application that will convert lowercase letters into upper case. (5 marks) Client should send your name in lower case letters and it should receive your name back from the server converted in uppercase letters. Create a different client and server file

Remote calculation 5. Create a simple calculator using socket programming (5 marks) It should implement four operations: Add, Subtract, Multiply, and Divide Client should send two numbers and type of operation to a server, and the server should reply with the result of the operation. If the client wants to exit, it should send "BYEBYE" to the server. Create a different client and server file

Submission 6. Submission (5 marks) Submit two python program for each exercise (3,4, and 5) to LEARN@POLYU before the submission deadline (20 March 2017, at 5:00pm) Name the file as: client1_studentID.py and server1_studentID.py for exercise 3 client2_studentID.py and server2_studentID.py for exercise 4 client3_studentID.py and server3_studentID.py for exercise 5 It is not required to zip the files!

Reference J. Goerzen and B. Rhodes, Foundations of Python Network Programming: The comprehensive guide to building network applications with Python, Second Edition, Apress, 2010.