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

📄 qsocket.html

📁 QT3.0.5的帮助文档的中文翻译
💻 HTML
📖 第 1 页 / 共 2 页
字号:

<h3 class=fn>void <a name="close"></a>QSocket::close ()<tt> [虚]</tt>
</h3>
关闭这个套接字。
<p> 读缓存被清空。
<p> 如果输出缓存是空的,状态被设置为<a href="#State-enum">QSocket::Idle</a>并且连接被立即终止。如果输出缓存中还有数据要写,QSocket进入<a href="#State-enum">QSocket::Closing</a>状态并且等待这些数据被写完。当所有的输出数据被写完,状态被设置为<a href="#State-enum">QSocket::Idle</a>并且连接被终止。在这时,<a href="#delayedCloseFinished">delayedCloseFinished</a>() 喜好被发射。
<p> <p>也可以参考<a href="#state">state</a>()和<a href="#bytesToWrite">bytesToWrite</a>()。
<p>实例:<a href="clientserver-example.html#x781">network/clientserver/client/client.cpp</a>、<a href="httpd-example.html#x640">network/httpd/httpd.cpp</a>和<a href="networkprotocol-example.html#x608">network/networkprotocol/nntp.cpp</a>。
<p>从<a href="qiodevice.html#close">QIODevice</a>中重新实现的。

<h3 class=fn>void <a name="connectToHost"></a>QSocket::connectToHost ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;host, Q_UINT16&nbsp;port )<tt> [虚]</tt>
</h3>  
试图连接主机<em>host</em>的指定端口<em>port</em>并且立即返回。
<p> 任何连接或者正在进行的连接被立即关闭,并且QSocket进入<a href="#State-enum">HostLookup</a> 状态。当查找成功,它发射<a href="#hostFound">hostFound</a>(),开始一个TCP连接并且进入<a href="#State-enum">Connecting</a>状态。最后,当连接成功时,它发射<a href="#connected">connected</a>()并且进入<a href="#State-enum">Connected</a>状态。如果在任何一个地方出现错误,它发射<a href="#error">error</a>()。
<p> <em>host</em>可以是一个字符串形式的IP地址,也可以是一个DNS名称。如果需要QSocket将会进行一个普通的DNS查找。注意<em>port</em>是本地字节顺序,不像其它库那样。
<p> <p>也可以参考<a href="#state">state</a>()。
<p>实例:<a href="clientserver-example.html#x782">network/clientserver/client/client.cpp</a>、<a href="mail-example.html#x756">network/mail/smtp.cpp</a>和<a href="networkprotocol-example.html#x609">network/networkprotocol/nntp.cpp</a>。

<h3 class=fn>void <a name="connected"></a>QSocket::connected ()<tt> [信号]</tt>
</h3>
<p> 在<a href="#connectToHost">connectToHost</a>()已经被调用并且连接已经被成功建立之后,这个信号被发射。
<p> <p>也可以参考<a href="#connectToHost">connectToHost</a>()和<a href="#connectionClosed">connectionClosed</a>()。
<p>实例:<a href="clientserver-example.html#x783">network/clientserver/client/client.cpp</a>、<a href="mail-example.html#x757">network/mail/smtp.cpp</a>和<a href="networkprotocol-example.html#x610">network/networkprotocol/nntp.cpp</a>。

<h3 class=fn>void <a name="connectionClosed"></a>QSocket::connectionClosed ()<tt> [信号]</tt>
</h3>
<p> 当另一端已经关闭这个连接时,这个信号被发射。在连接被关闭之后,读缓存中也许还包含被可读的缓存的输入数据。
<p> <p>也可以参考<a href="#connectToHost">connectToHost</a>()和<a href="#close">close</a>()。
<p>实例:<a href="clientserver-example.html#x784">network/clientserver/client/client.cpp</a>和<a href="networkprotocol-example.html#x611">network/networkprotocol/nntp.cpp</a>。

<h3 class=fn>void <a name="delayedCloseFinished"></a>QSocket::delayedCloseFinished ()<tt> [信号]</tt>
</h3>
<p> 当一个延时的关闭被完成时,这个信号被发射。
<p> 如果你调用<a href="#close">close</a>()并且输出缓存中还有数据要写,QSocket进入<a href="#State-enum">QSocket::Closing</a>状态并且立即返回。然后它将会继续要套接字写知道所有的数据被写完。然后,<a href="#delayedCloseFinished">delayedCloseFinished</a>()信号被发射。
<p> <p>也可以参考<a href="#close">close</a>()。
<p>实例:<a href="clientserver-example.html#x785">network/clientserver/client/client.cpp</a>和<a href="httpd-example.html#x641">network/httpd/httpd.cpp</a>。

<h3 class=fn>void <a name="error"></a>QSocket::error ( int )<tt> [信号]</tt>
</h3>
<p> 在错误发生之后,信号被发射。参数就是<a href="#Error-enum">Error</a>的值。
<p>实例:<a href="clientserver-example.html#x786">network/clientserver/client/client.cpp</a>和<a href="networkprotocol-example.html#x612">network/networkprotocol/nntp.cpp</a>。

<h3 class=fn>void <a name="flush"></a>QSocket::flush ()<tt> [虚]</tt>
</h3>
纯虚函数<a href="qiodevice.html#flush">QIODevice::flush</a>()的实现。
<p>从<a href="qiodevice.html#flush">QIODevice</a>中重新实现的。

<h3 class=fn>int <a name="getch"></a>QSocket::getch ()<tt> [虚]</tt>
</h3>
从内部的读缓存中读取单一的字节/字符。返回读取的字节/字符,或者如果没有什么可以读取的,返回-1。
<p> <p>也可以参考<a href="#bytesAvailable">bytesAvailable</a>()和<a href="#putch">putch</a>()。
<p>从<a href="qiodevice.html#getch">QIODevice</a>中重新实现的。

<h3 class=fn>void <a name="hostFound"></a>QSocket::hostFound ()<tt> [信号]</tt>
</h3>
<p> 在<a href="#connectToHost">connectToHost</a>()已经被调用并且主机查找已经成功之后,这个信号被发射。
<p> <p>也可以参考<a href="#connected">connected</a>()。
<p>实例:<a href="networkprotocol-example.html#x613">network/networkprotocol/nntp.cpp</a>。

<h3 class=fn>bool <a name="open"></a>QSocket::open ( int&nbsp;m )<tt> [虚]</tt>
</h3>
使用指定的<a href="qiodevice.html">QIODevice</a>文件模式<em>m</em>打开套接字。当被需要的时候会被自动调用并且你不应该自己调用它。
<p>也可以参考<a href="#close">close</a>()。
<p>从<a href="qiodevice.html#open">QIODevice</a>中重新实现的。

<h3 class=fn><a href="qhostaddress.html">QHostAddress</a> <a name="peerAddress"></a>QSocket::peerAddress () const
</h3>
返回为<a href="#connectToHost">connectToHost</a>()函数指定名称的主机地址。

<h3 class=fn><a href="qstring.html">QString</a> <a name="peerName"></a>QSocket::peerName () const
</h3>
返回为<a href="#connectToHost">connectToHost</a>()函数指定主机名称。如果没有被设置,返回一个空字符串。
<p>实例:<a href="mail-example.html#x758">network/mail/smtp.cpp</a>。

<h3 class=fn>Q_UINT16 <a name="peerPort"></a>QSocket::peerPort () const
</h3>  
返回本地的主机端口号,通常是为<a href="#connectToHost">connectToHost</a>()函数指定的。如果没有被设置,返回0。
<p> 注意Qt总是使用本地字节顺序,也就是在Qt中67就是67,不需要调用htons()。

<h3 class=fn>Q_UINT16 <a name="port"></a>QSocket::port () const
</h3>  
返回这个套接字的主机端口号,使用本地字节顺序。

<h3 class=fn>int <a name="putch"></a>QSocket::putch ( int&nbsp;ch )<tt> [虚]</tt>
</h3>
写字符<em>ch</em>到输出缓存。
<p> 返回<em>ch</em>,或者如果发生错误,返回-1。
<p> <p>也可以参考<a href="#getch">getch</a>()。
<p>从<a href="qiodevice.html#putch">QIODevice</a>中重新实现的。

<h3 class=fn>Q_LONG <a name="readBlock"></a>QSocket::readBlock ( char&nbsp;*&nbsp;data, Q_ULONG&nbsp;maxlen )<tt> [虚]</tt>
</h3>
从套接字中读取最多<em>maxlen</em>字节到<em>data</em>中并且返回读取的字节数。如果发生错误,返回-1。
<p>实例:<a href="networkprotocol-example.html#x614">network/networkprotocol/nntp.cpp</a>。
<p>从<a href="qiodevice.html#readBlock">QIODevice</a>中重新实现的。

<h3 class=fn><a href="qstring.html">QString</a> <a name="readLine"></a>QSocket::readLine ()<tt> [虚]</tt>
</h3>
返回包含终止新行符(\n)的一行文本。如果<a href="#canReadLine">canReadLine</a>()返回假,返回“”。
<p> <p>也可以参考<a href="#canReadLine">canReadLine</a>()。
<p>实例:<a href="clientserver-example.html#x787">network/clientserver/client/client.cpp</a>、<a href="httpd-example.html#x642">network/httpd/httpd.cpp</a>、<a href="mail-example.html#x759">network/mail/smtp.cpp</a>和<a href="networkprotocol-example.html#x615">network/networkprotocol/nntp.cpp</a>。

<h3 class=fn>void <a name="readyRead"></a>QSocket::readyRead ()<tt> [信号]</tt>
</h3>
<p> 当有进入的数据可以被读取时,这个信号被发射。
<p> 每一次有新进入的数据时,这个信号都被发射一次。记住新进入的数据只被报告一次,也就是,如果你没有读取全部数据,这个信号不会被再次发射,除非新的数据到达这个套接字。
<p> <p>也可以参考<a href="#readBlock">readBlock</a>()、<a href="#readLine">readLine</a>()和<a href="#bytesAvailable">bytesAvailable</a>()。
<p>实例:<a href="clientserver-example.html#x788">network/clientserver/client/client.cpp</a>、<a href="httpd-example.html#x643">network/httpd/httpd.cpp</a>、<a href="mail-example.html#x760">network/mail/smtp.cpp</a>和<a href="networkprotocol-example.html#x616">network/networkpotocol/nntp.cpp</a>。

<h3 class=fn>void <a name="setSocket"></a>QSocket::setSocket ( int&nbsp;socket )<tt> [虚]</tt>
</h3>
设置套接字使用<em>socket</em>并且<a href="#state">state</a>()为<a href="#State-enum">Connected</a>。这个套接字应该已经被连接。
<p> 这允许我们使用QSocket类作为一个其它套接字类型(也就是在Unix下的Unix领域套接字)的包装。
<p>实例:<a href="httpd-example.html#x644">network/httpd/httpd.cpp</a>。

<h3 class=fn>void <a name="setSocketDevice"></a>QSocket::setSocketDevice ( <a href="qsocketdevice.html">QSocketDevice</a>&nbsp;*&nbsp;device )<tt> [虚]</tt>
</h3>
设置内部套接字设备为<em>device</em>。传递一个0的<em>device</em>将导致这个内部套接字设备被使用。在使用新的<em>device</em>之前,任何已经存在的连接将被取消连接。
<p> 新的设备在被关联到一个QSocket之前应该没有被连接,在设置套接字调用<a href="#connectToHost">connectToHost</a>()之后进行连接。
<p> 如果你继承<a href="qsocketdevice.html">QSocketDevice</a>并且想使用QSocket应用编程接口,例如,实现Unix领域套接字,这个函数很有用。

<h3 class=fn><a href="qiodevice.html#Offset">Offset</a> <a name="size"></a>QSocket::size () const<tt> [虚]</tt>
</h3>  
立即返回可以读取的进入数据的字节数(就像<a href="#bytesAvailable">bytesAvailable</a>()一样)。
<p>在<a href="qiodevice.html#size">QIODevice</a>中重新实现的。

<h3 class=fn>void <a name="sn_read"></a>QSocket::sn_read ( bool&nbsp;force = FALSE )<tt> [虚 保护 槽]</tt>
</h3>
处理套接字读通知的内部槽。
<p> 这个函数通常只能被进入一次(也就是,不是递归调用)。如果参数<em>force</em>为真,这个函数被执行,但是没有<a href="#readyRead">readyRead</a>()信号被发射。这种方式对于<a href="#waitForMore">waitForMore</a>()函数很有用,所以在一个连接到readyRead()信号的槽中调用waitForMore()是可能的。

<h3 class=fn>void <a name="sn_write"></a>QSocket::sn_write ()<tt> [虚 保护 槽]</tt>
</h3>
处理套接字写通知的内部操。

<h3 class=fn>int <a name="socket"></a>QSocket::socket () const
</h3>
返回套接字数,或者如果这个时候没有套接字,返回-1。

<h3 class=fn><a href="qsocketdevice.html">QSocketDevice</a>&nbsp;* <a name="socketDevice"></a>QSocket::socketDevice ()
</h3>
返回内部套接字设备的指针。
<p> 通常不需要直接操作这个套接字设备,因为这个类对于绝大多数应用程序不需要设置。

<h3 class=fn><a href="qsocket.html#State-enum">State</a> <a name="state"></a>QSocket::state () const
</h3>
返回这个套接字连接的当前状态。
<p> <p>也可以参考<a href="#State-enum">QSocket::State</a>。
<p>实例:<a href="clientserver-example.html#x789">network/clientserver/client/client.cpp</a>和<a href="networkprotocol-example.html#x617">network/networkprotocol/nntp.cpp</a>。

<h3 class=fn>int <a name="ungetch"></a>QSocket::ungetch ( int&nbsp;ch )<tt> [虚]</tt>
</h3>
虚函数<a href="qiodevice.html#ungetch">QIODevice::ungetch</a>()的实现预先考虑写缓存中的字符<em>ch</em>,这样下一次读取把这个字符作为输出的第一个字符。
<p>从<a href="qiodevice.html#ungetch">QIODevice</a>中重新实现的。

<h3 class=fn>Q_ULONG <a name="waitForMore"></a>QSocket::waitForMore ( int&nbsp;msecs ) const
</h3>
为了得到更多的可用数据,等待<em>msecs</em>毫秒。
<p> 如果<em>msecs</em>为-1,这个调用将会不确定地阻塞。
<p> 这个一个阻塞调用并且应该在事件驱动的应用程序中避免使用。
<p> 返回可以使用的字节数。
<p> <p>也可以参考<a href="#bytesAvailable">bytesAvailable</a>()。

<h3 class=fn>Q_LONG <a name="writeBlock"></a>QSocket::writeBlock ( const&nbsp;char&nbsp;*&nbsp;data, Q_ULONG&nbsp;len )<tt> [虚]</tt>
</h3>
从<em>data</em>中向套接字中写入<em>len</em>字节并且返回所写的字节数。如果发生错误,返回-1。
<p>实例:<a href="networkprotocol-example.html#x618">network/networkprotocol/nntp.cpp</a>。
<p>从<a href="qiodevice.html#writeBlock">QIODevice</a>中重新实现的。

<!-- eof -->
<hr><p>
这个文件是<a href="index.html">Qt工具包</a>一部分。
版权所有 &copy; 1995-2002
<a href="http://www.trolltech.com/">Trolltech</a>。保留所有权利。
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 2002 
<a href="http://www.trolltech.com">Trolltech</a>
<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td><a href="zh_CN.html">译者:Cavendish</a>
<td align=right><div align=right>Qt 3.0.5版</div>
</table></div></address></body>
</html>

⌨️ 快捷键说明

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