11.01.2015 Views

I/O Multiplexing: select and poll

I/O Multiplexing: select and poll

I/O Multiplexing: select and poll

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<br />

client 至 server<br />

方 向 連 結 已 斷<br />

}<br />

if (FD_ISSET(sockfd, &rset)) { /* socket is readable */<br />

if (Readline(sockfd, recvline, MAXLINE) == 0) {<br />

if (stdineof == 1)<br />

return; /* normal termination */<br />

else<br />

err_quit("str_cli: server terminated prematurely");<br />

}<br />

Fputs(recvline, stdout);<br />

}<br />

if (FD_ISSET(fileno(fp), &rset)) { /* input is readable */<br />

if (Fgets(sendline, MAXLINE, fp) == NULL) {<br />

stdineof = 1;<br />

Shutdown(sockfd, SHUT_WR); /* send FIN */<br />

}<br />

FD_CLR(fileno(fp), &rset);<br />

continue;<br />

}<br />

Writen(sockfd, sendline, strlen(sendline));<br />

<strong>select</strong>/strcli<strong>select</strong>02.c<br />

只 斷 client 至<br />

server 方 向 連 結<br />

26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!