Are you asking because you've been dragged in to interview someone who will be on your team? Ask questions that are based in real-life problems you've had to face in your day-to-day operations. Think of the last bug you had related to socket programming, and turn it into an interview question.
Theory is nice, but you want to know that the person joining the team has experience in the trenches.