📄 csdn_文档中心_多路复用i-o模型支持多client的实现及效率讨论.htm
字号:
</SPAN><SPAN
style="mso-tab-count: 2">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>closesocket(clientsockarray[nIndex]);</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 2">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>clientsockarray[nIndex] = INVALID_SOCKET;</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><FONT
size=2><SPAN lang=EN-US><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 2">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>continue;<SPAN
style="mso-spacerun: yes">
</SPAN>// </SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">继续处理套接字句柄数组中的其它套接字</SPAN></FONT></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 2">
</SPAN>}</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><FONT
size=2><SPAN lang=EN-US><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 2">
</SPAN>// </SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将接受到的数据进行处理</SPAN><SPAN
lang=EN-US>,</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">此处只将其输出</SPAN></FONT></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>printf("%s\n", buff);</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>}</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN>}</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2> <?xml:namespace prefix = o ns =
"urn:schemas-microsoft-com:office:office"
/><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><FONT
size=2><SPAN lang=EN-US><SPAN
style="mso-tab-count: 1">
</SPAN>// </SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">初始化套接字集合</SPAN></FONT></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN>FD_ZERO(&readfds);</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN>FD_SET(listensock, &readfds);</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><FONT
size=2><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes">
</SPAN>// </SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将所有有效的套接字句柄加入到套接字句柄数组中</SPAN></FONT></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN>for (nIndex = 0; nIndex < FD_SETSIZE - 1;
nIndex++)</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN>{</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 84pt; mso-char-indent-count: 8.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2>if (clientsockarray[nIndex] !=
INVALID_SOCKET)</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>FD_SET(clientsockarray[nIndex],
&readfds);</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-tab-count: 1">
</SPAN>}</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2>}</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2> <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2>BOOL InsertSock(SOCKET* pSock,<SPAN
style="mso-spacerun: yes"> </SPAN>SOCKET
sock)</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2>{</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes">
</SPAN>for (int nIndex = 0;
nIndex < FD_SETSIZE – 1;
nIndex++)</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes">
</SPAN>{<BR><SPAN
style="mso-spacerun: yes">
</SPAN>if<SPAN style="mso-spacerun: yes">
</SPAN>(pSock[nIndex] = =
INVALID_SOCKET)</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes">
</SPAN>{</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes">
</SPAN>pSock[nIndex] = sock;</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes"> </SPAN>break;</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN style="mso-spacerun: yes">
</SPAN><SPAN
style="mso-spacerun: yes">
</SPAN>}</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes">
</SPAN>}</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2> <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes">
</SPAN>if (nIndex = = FD_SETSIZE – 1)</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes">
</SPAN>return FALSE;</FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><SPAN style="mso-spacerun: yes"><FONT
size=2> </FONT></SPAN></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US><FONT size=2><SPAN
style="mso-spacerun: yes">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -