Introduction to network programming