Alan Dix's short courses and tutorials
(first delivered while at School of Computing, Huddersfield University)
I haven't run this particular course for a number of years, but see below for free online materials and alternative courses.
|Audience:||UNIX systems programmers and software developers. May be especially attractive to experienced PC developers wanting to produce UNIX servers.|
|Style:||Combination of short lectures and hands-on sessions.|
|Content:||The importance of platform independent networks. Understanding the Internet: what it is, addresses, names and routers, levels of protocols (IP, UDP and TCP). How TCP works: port numbers, active and passive opening, establishing connections. The UNIX socket system calls (socket, bind, listen, connect etc.). Writing a client. Using select to manage multiple I/O streams. Alternative call-back based solutions. Writing a server. Use of fork to service client connections. Mixing bespoke clientserver applications with shared databases or shared files.|
|Objective:||The attendee should leave the course able to write clients to access existing services such as ftp and www, and be able to begin to write their own client server software under UNIX.|
|Prerequisites:||Basic knowledge of C programming under UNIX, including a good understanding of low-level UNIX I/O. Fork and select will be introduced rapidly, so some familiarity with these would be an advantage.|
|Length:||2/3 days depending on selction of topics|
|Note:|| The main language used will be C under UNIX, but comparisons will be made with Java TCP/IP as appropriate.
Clientserver software will often be written with UNIX servers and PC based clients. Versions of this course with different client-end focus (Java, Windows, Mac) can be delivered by special arrangement.
|http://www.hiraeth.com/alan/tutorials/tcpip/tcpip.html|| Alan Dix
(updated 23/10/04, 5/1/2006)