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
-
ucase_tcp
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
-
ucase_udp
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
-
getaddrinfo
-
getnameinfo
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
-
forking server
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
-
select server
-
poll server