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

📄 vcc94.htm

📁 Visual C++文摘精华
💻 HTM
📖 第 1 页 / 共 2 页
字号:
          </tr>
          <tr> 
            <td class="unnamed1">FD_WRITE</td>
            <td class="unnamed1">有数据发送时产生 </td>
            <td class="unnamed1">void OnSend( int nErrorCode ); </td>
          </tr>
          <tr> 
            <td class="unnamed1">FD_OOB</td>
            <td class="unnamed1">收到外带数据时发生</td>
            <td class="unnamed1">void OnOutOfBandData( int nErrorCode ); </td>
          </tr>
          <tr> 
            <td class="unnamed1">FD_ACCEPT</td>
            <td class="unnamed1">作为服务端等待连接成功时发生</td>
            <td class="unnamed1">void OnAccept( int nErrorCode ); </td>
          </tr>
          <tr> 
            <td class="unnamed1">FD_CONNECT</td>
            <td class="unnamed1">作为客户端连接成功时发生</td>
            <td class="unnamed1">void OnConnect( int nErrorCode ); </td>
          </tr>
          <tr> 
            <td class="unnamed1">FD_CLOSE</td>
            <td class="unnamed1">套接口关闭时发生</td>
            <td class="unnamed1">void OnClose( int nErrorCode ); </td>
          </tr>
          </tbody> 
        </table>
         <small>我们看到重载的函数中都有一个参数nErrorCode,为零则表示正常完成,非零则表示错误。通过int 
        CAsyncSocket::GetLastError()可以得到错误值。 </small> </span> 
        <p></p>
        <p class="unnamed1"><small>下面我们看看套接口类所提供的一些功能,通过这些功能我们可以方便的建立网络连接和发送数据。 
          </small> 
        <ul>
          <li class="unnamed1"><small>BOOL CAsyncSocket::Create( UINT nSocketPort 
            = 0, int nSocketType = SOCK_STREAM, long lEvent = FD_READ | FD_WRITE 
            | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, LPCTSTR lpszSocketAddress 
            = NULL );用于创建一个本地套接口,其中nSocketPort为使用的端口号,为零则表示由系统自动选择,通常在客户端都使用这个选择。nSocketType为使用的协议族,SOCK_STREAM表明使用有连接的服务,SOCK_DGRAM表明使用无连接的数据报服务。lpszSocketAddress为本地的IP地址,可以使用点分法表示如10.1.1.3。</small> 
          <li class="unnamed1"><small>BOOL CAsyncSocket::Bind( UINT nSocketPort, 
            LPCTSTR lpszSocketAddress = NULL )作为等待连接方时产生一个网络半关联,或者是使用UDP协议时产生一个网络半关联。</small> 
          <li class="unnamed1"><small>BOOL CAsyncSocket::Listen( int nConnectionBacklog 
            = 5 )作为等待连接方时指明同时可以接受的连接数,请注意不是总共可以接受的连接数。</small> 
          <li class="unnamed1"><small>BOOL CAsyncSocket::Accept( CAsyncSocket&amp; 
            rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen 
            = NULL )作为等待连接方将等待连接建立,当连接建立后一个新的套接口将被创建,该套接口将会被用于通信。</small> 
          <li class="unnamed1"><small>BOOL CAsyncSocket::Connect( LPCTSTR lpszHostAddress, 
            UINT nHostPort );作为连接方发起与等待连接方的连接,需要指明对方的IP地址和端口号。</small> 
          <li class="unnamed1"><small>void CAsyncSocket::Close( );关闭套接口。</small> 
          <li class="unnamed1"><small>int CAsyncSocket::Send( const void* lpBuf, 
            int nBufLen, int nFlags = 0 )<br>
            int CAsyncSocket::Receive( void* lpBuf, int nBufLen, int nFlags = 
            0 );在建立连接后发送和接收数据,nFlags为标记位,双方需要指明相同的标记。</small> 
          <li class="unnamed1"><small>int CAsyncSocket::SendTo( const void* lpBuf, 
            int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags 
            = 0 )<br>
            int CAsyncSocket::ReceiveFrom( void* lpBuf, int nBufLen, CString&amp; 
            rSocketAddress, UINT&amp; rSocketPort, int nFlags = 0 );对于无连接通信发送和接收数据,需要指明对方的IP地址和端口号,nFlags为标记位,双方需要指明相同的标记。</small> 
          </li>
        </ul>
         <small>我们可以看到大多数的函数都返回一个布尔值表明是否成功。如果发生错误可以通过int 
        CAsyncSocket::GetLastError()得到错误值。 </small> </span> 
        <p></p>
        <p class="unnamed1"><small>由于CSocket由CAsyncSocket派生所以拥有CAsyncSocket的所有功能,此外你可以通过BOOL 
          CSocket::Create( UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, 
          LPCTSTR lpszSocketAddress = NULL )来创建套接口,这样创建的套接口没有办法异步处理事件,所有的调用都必需完成后才会返回。</small></p>
        <p class="unnamed1"><small>在上面的介绍中我们看到MFC提供的套接口类屏蔽了大多数的细节,我们只需要做很少的工作就可以开发出利用网络进行通信的软件。</small></p>
        <div align="left"> </div>
         
      </td>
    </tr>
    </tbody> 
  </table>
</div>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

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