Poller Mux = new Poller();
int serverFd = Mux.add(serverSocket, Poller.POLLIN);
int fd1 = Mux.add(socket1, Poller.POLLIN);
...
int fdN = Mux.add(socketN, Poller.POLLIN);
long timeout = 1000; // 1 秒
int numEvents = Mux.waitMultiple(100, fds, revents, timeout);
for (int i = 0; i < numEvents; i++) {
/*
* より洗練させる必要がある
*/
if (fds[i] == serverFd) {
System.out.println("Got new connection.");
newSocket = serverSocket.accept();
newSocketFd = Mux.add(newSocket,Poller.POLLIN);
} else if (fds[i] == fd1) {
System.out.println("Got data on socket1");
socket1.getInputStream().read(byteArray);
// fd1 接続の状態に基づいて処理を行う
}
...
}
|