Introduction to socket programming