zoukankan      html  css  js  c++  java
  • 网络编程的4种IO模型

    select
    FD_ZERO初始化
    FD_SET将socket加进去
    select轮询
    当socket的事件发生时,fd_set里面有相关的socket,如果没有socket有事件发生,select返回0
    FD_ISSET检测,socket是否还在fd_set里,是的话,表示这个socket有事件发生

    WSAAsyncSelect
    WSAAsyncSelect将socket与对应的窗口过程绑定,并指定这个socket对哪些事件感兴趣
    WSAGETSELECTERROR(lParam)得到错误
    WSAGETSELECTEVENT(lParam)得到是哪个事件
    wParam为socket

    WSAEventSelect
    WSACreateEvent创建一个事件
    WSAEventSelect将socket与事件绑定
    WSAWaitForMultipleEvents等待这些事件
    WSAEnumNetworkEvents得到发生的通知FD_ACCEPT之类

    WSAGetOverlappedResult
    typedef struct _WSAOVERLAPPED {
    DWORD Internal;
    DWORD InternalHigh;
    DWORD Offset;
    DWORD OffsetHigh;
    WSAEVENT hEvent;
    } WSAOVERLAPPED, *LPWSAOVERLAPPED;

    WSAOVERLAPPED中的hEvent
    WSACreateEvent创建一个事件
    用WSARecv带WSAOVERLAPPED结构
    用WSAWaitForMultipleEvents等待这些事件
    用WSAGetOverlappedResult得到WSAOVERLAPPED结构

  • 相关阅读:
    服务器常用端口
    xml处理类
    水印的代码
    Asp.net常用的51个代码(非常实用)
    poj 2453
    MOD
    LIS(最长上升子序列)
    POJ各题算法分类(转)
    poj 1496&1850
    poj 1423
  • 原文地址:https://www.cnblogs.com/ywledoc/p/2793246.html
Copyright © 2011-2022 走看看