Computer Networking - A Top/Down Approach, 6th Edition socket programming assignments