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结构

  • 相关阅读:
    hdu-美素数
    codeforces-Jeff and Periods
    codeforces-Domino
    UVA10878
    UVA537
    UVA10815
    c语言中的qsort函数(转)
    Loadrunner进行性能测试的步骤
    LoadRunner打开WebTours只显示头部解决办法
    性能测试的基本概念
  • 原文地址:https://www.cnblogs.com/ywledoc/p/2793246.html
Copyright © 2011-2022 走看看