网络编程的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結構
轉載于:https://www.cnblogs.com/ywledoc/archive/2012/11/28/2793246.html
總結
以上是生活随笔為你收集整理的网络编程的4种IO模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的手机 不支持箭头函数
- 下一篇: 迷宫探索