CSCI 415/515 - Fall 2023
Systems Programming
Sockets


Monday, Oct 23, 2023

Readings
The Linux Programming Interface:
  • Ch 58: Fundamental of TCP/IP Networks
    • 58.1: Internets
    • 58.2: Networking Protocols and Layers
    • 58.3: The Data-Link Layer
    • 58.4: The Network Layer: IP
    • 58.5: IP Addresses
    • 58.6: The Transport Layer
    • 58.7: Requests for Comments (RFCs)

Wednesday, Oct 25, 2023

Readings
The Linux Programming Interface:
  • Ch 56: Socket: Introduction
    • 56.1: Overview
    • 56.2: Creating a Socket: socket()
    • 56.3: Binding a Socket to an Address: bind()
    • 56.4: Generic Socket Address Structures: struct sockaddr
    • 56.5: Stream Sockets
    • 56.6: Datagram Sockets
Materials

Friday, Oct 27 2023

Readings
The Linux Programming Interface:
  • Ch 59: Sockets: Internet Domains
    • 59.1: Internet Domain Sockets
    • 59.2: Network Byte Order
    • 59.3: Data Representation
    • 59.4: Internet Socket Addresses
    • 59.5: Overview of Host and Service Conversion Functions
    • 59.6: The inet_pton() and inet_ntop() Functions
Materials

Monday, Oct 30, 2023

No class.

Wednesday, Nov 1, 2023

Readings
The Linux Programming Interface:
  • Ch 59: Sockets: Internet Domains
    • 59.7: Client-Server Example (Datagram Sockets)
    • 59.8: Domain Name System (DNS)
    • 59.9: The /etc/services File
    • 59.10: Protocol-Independent Host and Service Conversion
    • 59.11: Client-Server Example (Stream Sockets)
    • 59.12: An Internet Domain Sockets Library
Materials

Friday, Nov 3, 2023

In-class:
Walk through adns project.

Monday, Nov 6, 2023

Readings
The Linux Programming Interface:
  • Ch 60: Sockets: Server Design
    • 60.1: Iterative and Concurrent Servers
    • 60.2: An Iterative UDP echo Server
    • 60.3: A Concurrent TCP echo Server
    • 60.4: Other Concurrent Server Designs
Materials

Wednesday, Nov 8, 2023

Readings
The Linux Programming Interface:
  • Ch 63: Alternative I/O Models
    • 63.1: Overview
    • 63.2: I/O Multiplexing
    • 63.4: The epoll API
Materials