Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Sockets Introduction to Networking

Similar presentations


Presentation on theme: "Advanced Sockets Introduction to Networking"— Presentation transcript:

1 Advanced Sockets Introduction to Networking
Instructor: Prof. Aleksandar Kuzmanovic Advanced Sockets Bin Lin TA , Intro to Networking Jan 19, 2005 Recital 3

2 Homework grader Geet Duggal, geet@geetduggal.com.
Office hours on Tuesdays between 4 and 6

3 The problem You are a server and you want to listen for incoming connections as well as keep reading from the connections you already have. Blocking "block" is techie jargon for "sleep". Lots of functions block. accept() blocks. All the recv() functions block

4 The select call Enables you to deal with many clients at the same time HOW ? Monitors several sockets at the same time. tell you which ones are ready for reading, which are ready for writing,

5 Synopsis of select() #include <sys/time.h> #include <sys/types.h> #include <unistd.h> int select(int numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); It'll tell you which ones are ready for reading, which are ready for writing, and which sockets have raised exceptions, if you really want to know that.

6 Manipulate sets Each set is of the type fd_set. The following macros operate on this type: FD_ZERO(fd_set *set) -- clears a file descriptor set FD_SET(int fd, fd_set *set) -- adds fd to the set FD_CLR(int fd, fd_set *set) -- removes fd from the set FD_ISSET(int fd, fd_set *set) -- tests to see if fd is in the set Example - when select() returns, readfds will be modified to reflect which of the file descriptors you selected is ready for reading. Test them with the macro FD_ISSET(),

7 A multi-person chat server
THE CODE A multi-person chat server

8 A multi-person chat server
DEMO A multi-person chat server

9 Important Points Accepting new connections via select
Client closes connection Select returns “socket ready to read” recv() will return 0.


Download ppt "Advanced Sockets Introduction to Networking"

Similar presentations


Ads by Google