Windows程序设计 读书笔记 - 领略INTERNET
2010-05-06 17:53
330 查看
一、WinSock
WSAStartup (MAKEWORD(2,0), &WSAData);
//之后执行失败的都要WSACleanup();
sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP) ;
WSAAsyncSelect (sock, hwnd, WM_SOCKET_NOTIFY, FD_CONNECT | FD_READ);
//设置connect为非阻塞。
//在FD_CONNECT | FD_READ消息发生时,触发WM_SOCKET_NOTIFY消息
connect(sock, (SOCKADDR *) &sa, sizeof (sa)) ;
WM_SOCKET_NOTIFY消息处理:
wEvent = WSAGETSELECTEVENT (lParam) ; // ie, LOWORD
wError = WSAGETSELECTERROR (lParam) ; // ie, HIWORD
switch(wEvent)
{
case FD_CONNECT:recv (sock, (char *) &ulTime, 4, MSG_PEEK) ;
case FD_READ:recv (sock, (char *) &ulTime, 4, 0) ;
}
处理完毕后,清理:
closesocket (sock) ;
sock = 0 ;
WSACleanup () ;
WSAStartup (MAKEWORD(2,0), &WSAData);
//之后执行失败的都要WSACleanup();
sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP) ;
WSAAsyncSelect (sock, hwnd, WM_SOCKET_NOTIFY, FD_CONNECT | FD_READ);
//设置connect为非阻塞。
//在FD_CONNECT | FD_READ消息发生时,触发WM_SOCKET_NOTIFY消息
connect(sock, (SOCKADDR *) &sa, sizeof (sa)) ;
WM_SOCKET_NOTIFY消息处理:
wEvent = WSAGETSELECTEVENT (lParam) ; // ie, LOWORD
wError = WSAGETSELECTERROR (lParam) ; // ie, HIWORD
switch(wEvent)
{
case FD_CONNECT:recv (sock, (char *) &ulTime, 4, MSG_PEEK) ;
case FD_READ:recv (sock, (char *) &ulTime, 4, 0) ;
}
处理完毕后,清理:
closesocket (sock) ;
sock = 0 ;
WSACleanup () ;
相关文章推荐
- Windows程序设计 读书笔记 - 与设备无关的位图DIB
- Windows程序设计 读书笔记 - 子窗口控制(控件)。
- Windows程序设计 读书笔记 - GDI轨迹/字体轮廓
- Windows程序设计 读书笔记 - 动态链接库
- Windows程序设计 读书笔记 - 键盘。
- Windows程序设计 读书笔记 - 菜单及其他资源。
- Windows程序设计 读书笔记 - 声音与音乐
- Windows程序设计 读书笔记 - 计时器。
- Windows程序设计 读书笔记 - 打印机。
- Windows程序设计 读书笔记 - 多文档界面
- Windows程序设计 读书笔记 - 剪贴板。
- Windows程序设计 读书笔记 - 文本与字体
- Windows程序设计 读书笔记 - 元文件
- Windows程序设计 读书笔记 - 对话框。
- Windows程序设计 读书笔记 - 位图和BitBlt。
- Windows程序设计 读书笔记 - 多线程
- Windows程序设计 读书笔记 - 鼠标。
- windows程序设计 笔记1
- windows 程序设计之「RECORD2.C」范例分析笔记
- JavaScript程序设计_读书笔记1