Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fd_set readset, writeset;
- FD_ZERO(&readset);
- FD_SET(JohnDoe.read_fd(), &readset);
- FD_SET(JoeSmith.read_fd(), &readset);
- FD_SET(JaneSmith.read_fd(), &readset);
- FD_ZERO(&writeset);
- FD_SET(JohnDoe.write_fd(), &writeset);
- FD_SET(JoeSmith.write_fd(), &writeset);
- FD_SET(JaneSmith.write_fd(), &writeset);
- int maxfd = 0;
- maxfd = max(maxfd, JohnDoe.read_fd());
- maxfd = max(maxfd, JohnDoe.write_fd());
- maxfd = max(maxfd, JoeSmith.read_fd());
- maxfd = max(maxfd, JoeSmith.write_fd());
- maxfd = max(maxfd, JaneSmith.read_fd());
- maxfd = max(maxfd, JaneSmith.write_fd());
- int numready;
- int count = 0;
- while (count < 10) {
- numready = select(maxfd + 1, &readset, &writeset, NULL, NULL);
- if (numready == -1) {
- cout << "Fatal error, abortingn";
- break;
- }
- else {
- if(FD_ISSET(JohnDoe.write_fd(), &writeset)) { //write_fd() returns write file descriptor
- JohnDoe.cwrite("data John Doe"); //one RequestChannel object
- }
- if(FD_ISSET(JoeSmith.write_fd(), &writeset)) {
- JoeSmith.cwrite("data Joe Smith");
- }
- if(FD_ISSET(JaneSmith.write_fd(), &writeset)) {
- JaneSmith.cwrite("data JaneSmith");
- }
- if(FD_ISSET(JohnDoe.read_fd(), &readset)) {
- string s = JohnDoe.cread();
- cout << "John Doe cread: " << s << "n";
- }
- if(FD_ISSET(JoeSmith.read_fd(), &readset)) {
- string s = JoeSmith.cread();
- cout << "Joe Smith cread: " << s << "n";
- }
- if(FD_ISSET(JaneSmith.read_fd(), &readset)) {
- string s = JaneSmith.cread();
- cout << "Jane Smith cread: " << s << "n";
- }
- }
- }
- fd_set readset, writeset;
- int maxfd = 0;
- maxfd = max(maxfd, JohnDoe.read_fd());
- maxfd = max(maxfd, JohnDoe.write_fd());
- maxfd = max(maxfd, JoeSmith.read_fd());
- maxfd = max(maxfd, JoeSmith.write_fd());
- maxfd = max(maxfd, JaneSmith.read_fd());
- maxfd = max(maxfd, JaneSmith.write_fd());
- int numready;
- int count = 0;
- while (count < 10) {
- FD_ZERO(&readset);
- FD_SET(JohnDoe.read_fd(), &readset);
- FD_SET(JoeSmith.read_fd(), &readset);
- FD_SET(JaneSmith.read_fd(), &readset);
- FD_ZERO(&writeset);
- FD_SET(JohnDoe.write_fd(), &writeset);
- FD_SET(JoeSmith.write_fd(), &writeset);
- FD_SET(JaneSmith.write_fd(), &writeset);
- numready = select(maxfd + 1, &readset, &writeset, NULL, NULL);
- // etc...
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement