Sign In
 

 SWE 344: Internet Protocols And Client-Server Programming

​Course Information

Class/Laboratory Schedule: 

Two 50-minute lectures + one 3-hour lab per week. (3-3-4)

Designation:   Required Course

Course Level:   Undergraduate

Prerequisites

Prerequisite(s) by Topic: 

  • A familiarity with Programming Fundamentals.

Prerequisite Courses: 


Catalog Description: 

Principles of inter-network architecture and communication protocols. Open systems and interoperability. Case studies of particular protocols from network layer and above. Socket programming. Remoting. Selected examples of networked client-server applications such as e-mail, news, file-transfer, HTTP. Client-Server Programming Project(s). Using APIs. Software tools and environments.

Textbook(s): 

Richard Blum, C# Network Programming. Sybex 2002.http://www.sybex.com/sybexbooks.nsf/booklist/4176

Reference(s) and Other Material: 

  • Lecture notes and handouts
  • Several web sites and e-books to be available through the course website.

Course Outcomes: 

After completing this course, the student should be able to:

  • Demonstrate understanding of the TCP/IP model and relevant protocols in each layer.
  • Describe the IP addressing, Internet domain names and recognize the role of the DNS servers.
  • Explain the operation and related issues of various common Internet applications and protocols including: HTTP, SMTP, POP, FTP, Telnet, IGMP, etc.
  • Identify and apply various socket programming concepts and mechanisms.
  • Use effectively the socket interface or remoting to develop Client-Server Internet applications.
  • Practice software engineering principles and methods in building network-aware applications.

Topics Covered: 

  • Review of Object-Oriented Programming Concepts
  • Review of File IO, Exception Handling and Use of data structures in the API such as ArrayList, HashTable, etc.
  • Event-driven applications and Multi-Threaded Programming
  • Network architecture models and related protocols
  • IP Addressing, Internet domain names and DNS
  • TCP Client-Server Programming
  • UDP Client-Server Programming
  • Asynchronous Client-Server Programming
  • Multi-client TCP Servers
  • Hypertext Transfer Protocol (HTTP)
  • Remoting
  • Mail Protocols: Mail Format, SMTP, POP, MIME
  • File Transfer Protocol (FTP),
  • Broadcasting and Multicasting
  • Introduction to Network Security
  • Accessing Databases​