Skip to main content
CPE
458
Network Programming
Introduction to the design, architecture and implementation of client and server programs in the client-server model of computing. Overview of the TCP/IP suite of protocols and some application specific protocols. Sockets programming, client/server, peer-to-peer, Internet addressing, TCP sockets, UDP sockets. Multithreading and exception handling. Interprocess communication and network programming interfaces. Server architectures. Use of scripting languages in providing client-side and server-side processing in web based applications. Security issues.
Prerequisites:
0612356
0612458
(3-0-3)

Credits and Contact Hours

3 credits, 43 hours

Course Instructor Name

Dr. Mohamad Awad

Textbook

An Introduction to Network Programming with Java, Springer, Jan Graba, 3rd Edition, 2013

Catalog Description

Introduction to the design, architecture, and implementation of client and server programs in the client-server model of computing. Overview of the TCP/IP suite of protocols and some application-specific protocols. Sockets programming, client/server, peer-to-peer, Internet addressing, TCP sockets, UDP sockets. Multithreading and exception handling. File access and database connectivity. Interprocess communication and network programming interfaces. Server architectures. Use of scripting languages in providing client-side and server-side processing in web-based applications. Security issues.

Prerequisite

CpE-356

Specific Goals for the Course

Upon successful completion of this course, students will be able to:

Develop understanding of networking and the client/server paradigm. (Student outcomes: 1, 2)

Implement client-server solutions using TCP/IP protocol suite. (Student outcomes: 1, 2, 6)

Understand the Java process model and Java input/output, and input/output system calls. (Student outcomes: 1, 2)

Understand and use the most widely used network application protocols such as ftp, telnet, ping, etc. to develop distributed applications. (Student outcomes: 1, 2, 6)

Write either connection-oriented or connectionless servers and clients using the Java Sockets API. (Student outcomes: 1, 2)

Handling files. (Student outcomes: 1, 2)

Understand multithreading and its different implementations in Java.

Perform address translation functions in the Sockets API to translate between IP numbers and hostnames. (Student outcomes: 1, 2, 6)

Accessing a remote database connectivity. (Student outcomes: 1, 2)

Topics to Be Covered

Introduction to computer networks and TCP/IP suite of protocols.

Client -- Server Programming in Java.

Synchronization (condition variables, record locking).

Transport layer programming (TCP and UDP Implementation).

I/O multiplexing.

GUI and Network Programming.

Files Handling.

Advanced topics (e.g., Remote Database Connectivity).