⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 get-sockets.html

📁 SDK FAQ集
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html lang="en"><head><title>Winsock Programmer's FAQ: Maximum Sockets Tester</title><link rel="Stylesheet" type="text/css" href="../faq.css"></head><body bgcolor="#ffffee" text="#000000" link="#491e00" vlink="#7d2e01" alink="#da7417"><!--  ---- Header Bar ----  --><table border="0" width="95%" bgcolor="#006000" cellpadding="5" cellspacing="3" align="center">	<tr>		<td align="left" bgcolor="#e0e0c0">			<font size="2" face=Verdana,Arial,Helvetica>				<b><a href="../examples/username.html">&lt;&lt;</a></b>			</font>		</td>		<td align="center">			<font face=Verdana,Arial,Helvetica color="#ffffee">				<p align=center class=bigger3><b>				Winsock Programmer's FAQ<br>				Example: Finding the Maximum Number of Open Sockets				</b></p>			</font>			</td>		<td align="right" bgcolor="#e0e0c0">			<font size="2" face=Verdana,Arial,Helvetica>				<b><a href="../articles/index.html">&gt;&gt;</a></b>			</font>		</td>	</tr></table><!--  ---- Body Table ----  --><table width="95%" border="0" cellpadding="10">	<tr valign="top">		<td><p>Compile and run this example on a machine to find out how many socketsyou can open at one time. Beware that on Windows 95/98 machines, thisprogram will eventually take so much CPU time that you may not be ableto do anything, including stopping the program! Windows NT systems seemmuch more well-behaved about this, but they will also tend to bog downa bit while this program is running.</p><p>Note that this program only tells you how many socketsyou can create at one time. It will not tell you how manysockets you can have <i>in use</i> at one time. There is an <ahref="../advanced.html#maxsockets">item in the main FAQ</a> that coversthe issue in detail.</p><p>This program is based on Bob Quinn's get_skts.c program.</p><hr noshade size=1 color=#404040><h4 class=lmargin><a href="../examples/src/get-sockets.cpp">get-sockets.cpp</a></h4><pre><font color="0000ff"><strong>#include <font color="#008000">&lt;stdio.h&gt;</font></strong></font><font color="0000ff"><strong>#include <font color="#008000">&lt;winsock.h&gt;</font></strong></font><font color="0000ff"><strong>#include <font color="#008000">&lt;sys/timeb.h&gt;</font></strong></font><font color="0000ff"><strong>#include <font color="#008000">&lt;time.h&gt;</font></strong></font><strong>int</strong> <font color="#2040a0">doit</font><font color="4444FF">(</font><strong>int</strong>, <strong>char</strong><font color="4444FF">*</font><font color="4444FF">*</font><font color="4444FF">)</font><font color="4444FF"><strong>{</strong></font>    <font color="#2040a0">SOCKET</font> <font color="#2040a0">hLastSock</font><font color="4444FF">;</font>    <strong>long</strong> <font color="#2040a0">lCurrentTime</font><font color="4444FF">;</font>    <font color="#2040a0">printf</font><font color="4444FF">(</font><font color="#008000">&quot;Working on getting sockets...<font color="#77dd77">\n</font>&quot;</font><font color="4444FF">)</font><font color="4444FF">;</font>    <strong>for</strong> <font color="4444FF">(</font><strong>int</strong> <font color="#2040a0">i</font> <font color="4444FF">=</font> <font color="#FF0000">0</font><font color="4444FF">;</font> <font color="#444444">/**/</font><font color="4444FF">;</font> <font color="4444FF">+</font><font color="4444FF">+</font><font color="#2040a0">i</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>        <font color="#2040a0">SOCKET</font> <font color="#2040a0">hSock</font> <font color="4444FF">=</font> <font color="#2040a0">socket</font><font color="4444FF">(</font><font color="#2040a0">AF_INET</font>, <font color="#2040a0">SOCK_STREAM</font>, <font color="#FF0000">0</font><font color="4444FF">)</font><font color="4444FF">;</font>        <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">hSock</font> <font color="4444FF">!</font><font color="4444FF">=</font> <font color="#2040a0">INVALID_SOCKET</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>            <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">i</font> <font color="4444FF">&amp;</font><font color="4444FF">&amp;</font> <font color="4444FF">!</font><font color="4444FF">(</font><font color="#2040a0">i</font> <font color="4444FF">%</font> <font color="#FF0000">1000</font><font color="4444FF">)</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>                <strong>struct</strong> <font color="#2040a0">_timeb</font> <font color="#2040a0">timebuffer</font><font color="4444FF">;</font>                <font color="#2040a0">_ftime</font><font color="4444FF">(</font><font color="4444FF">&amp;</font><font color="#2040a0">timebuffer</font><font color="4444FF">)</font><font color="4444FF">;</font>                <strong>char</strong><font color="4444FF">*</font> <font color="#2040a0">timeline</font> <font color="4444FF">=</font> <font color="#2040a0">ctime</font><font color="4444FF">(</font><font color="4444FF">&amp;</font><font color="4444FF">(</font><font color="#2040a0">timebuffer</font>.<font color="#2040a0">time</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font>                <font color="#2040a0">printf</font><font color="4444FF">(</font><font color="#008000">&quot;%d sockets so far, at %.19s.%hu %s&quot;</font>,                        <font color="#2040a0">i</font>, <font color="#2040a0">timeline</font>, <font color="#2040a0">timebuffer</font>.<font color="#2040a0">millitm</font>, <font color="4444FF">&amp;</font><font color="#2040a0">timeline</font><font color="4444FF">[</font><font color="#FF0000">20</font><font color="4444FF">]</font><font color="4444FF">)</font><font color="4444FF">;</font>            <font color="4444FF"><strong>}</strong></font>            <font color="#2040a0">hLastSock</font> <font color="4444FF">=</font> <font color="#2040a0">hSock</font><font color="4444FF">;</font>        <font color="4444FF"><strong>}</strong></font>         <strong>else</strong> <font color="4444FF"><strong>{</strong></font>            <font color="#2040a0">printf</font><font color="4444FF">(</font><font color="#008000">&quot;socket(%d) failed.  Err: %d.  Last socket: %d.<font color="#77dd77">\n</font>&quot;</font>,                    <font color="#2040a0">i</font>, <font color="#2040a0">WSAGetLastError</font><font color="4444FF">(</font><font color="4444FF">)</font>, <font color="#2040a0">hLastSock</font><font color="4444FF">)</font><font color="4444FF">;</font>            <strong>return</strong> <font color="#FF0000">0</font><font color="4444FF">;</font>        <font color="4444FF"><strong>}</strong></font>    <font color="4444FF"><strong>}</strong></font>    <strong>return</strong> <font color="#FF0000">0</font><font color="4444FF">;</font><font color="4444FF"><strong>}</strong></font><strong>int</strong> <font color="#2040a0">main</font><font color="4444FF">(</font><strong>int</strong> <font color="#2040a0">argc</font>, <strong>char</strong><font color="4444FF">*</font> <font color="#2040a0">argv</font><font color="4444FF">[</font><font color="4444FF">]</font><font color="4444FF">)</font><font color="4444FF"><strong>{</strong></font>    <font color="#2040a0">WSAData</font> <font color="#2040a0">wsaData</font><font color="4444FF">;</font>    <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">WSAStartup</font><font color="4444FF">(</font><font color="#2040a0">MAKEWORD</font><font color="4444FF">(</font><font color="#FF0000">1</font>, <font color="#FF0000">1</font><font color="4444FF">)</font>, <font color="4444FF">&amp;</font><font color="#2040a0">wsaData</font><font color="4444FF">)</font> <font color="4444FF">!</font><font color="4444FF">=</font> <font color="#FF0000">0</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>        <strong>return</strong> <font color="#FF0000">255</font><font color="4444FF">;</font>    <font color="4444FF"><strong>}</strong></font>    <strong>int</strong> <font color="#2040a0">retval</font> <font color="4444FF">=</font> <font color="#2040a0">doit</font><font color="4444FF">(</font><font color="#2040a0">argc</font>, <font color="#2040a0">argv</font><font color="4444FF">)</font><font color="4444FF">;</font>    <font color="#2040a0">WSACleanup</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font>    <strong>return</strong> <font color="#2040a0">retval</font><font color="4444FF">;</font><font color="4444FF"><strong>}</strong></font></pre>		</td>	</tr></table><!--  ---- Document Footer ----  --><hr noshade size=1 color=#404040><table cellpadding=5 cellspacing=0 border=0 width=95% align=center> 	<tr>		<td align=left>		    <a href="../examples/username.html">&lt;&lt; Get the Username</a>		</td>		<td align=right>		    <a href="../articles/index.html">Articles &gt;&gt;</a>		</td>	</tr>	<tr>		<td align=left>			<i>Last modified on 29 April 2000 at 15:52 UTC-7</i>		</td>		<td align=right>			<font size=-1>Please send corrections to <a href="mailto:tangent@cyberport.com">tangent@cyberport.com</a>.</font>		</td>	</tr>	</table>	<table cellpadding=5 cellspacing=0 border=0 width=95% align=center> 	<tr>		<td align=left width=33%>			<font size=-1>				<a href="../index.html"><b>&lt;</b> Go to the main FAQ page</a>			</font>		</td>		<td width=33%>			<font size=-1>			<center>				<a href="http://www.cyberport.com/~tangent/programming"><b>&lt;&lt;</b> Go to my Programming pages</a>			</center>			</font>		</td>		<td align=right width=33%>			<font size=-1>				<a href="http://www.cyberport.com/~tangent/"><b>&lt;&lt;&lt;</b> Go to my Home Page</a>			</font>		</td>	</tr>	</table>	</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -