随笔分类 - 网络编程
在完成端口中使用GetAcceptExSockaddrs
摘要:MSDN:When using AcceptEx, the GetAcceptExSockaddrs function must be called to parse the buffer into its three distinct parts (data, local socket addre...
阅读全文
PostQueuedCompletionStatus
摘要:PostQueuedCompletionStatus函数,向每个工作者线程都发送—个特殊的完成数据包。该函数会指示每个线程都“立即结束并退出”.下面是PostQueuedCompletionStatus函数的定义: BOOL PostQueuedCompletionStatus( HANDLE ...
阅读全文
PostQueuedCompletionStatus详解
摘要:PostQueuedCompletionStatus函数,向每个工作者线程都发送—个特殊的完成数据包。该函数会指示每个线程都“立即结束并退出”.下面是PostQueuedCompletionStatus函数的定义: BOOL PostQueuedCompletionStatus( HANDLE ...
阅读全文
完成端口(IOCP)怎么判断某个连接是否断开
摘要:完成端口函数:[csharp] view plaincopyBOOLGetQueuedCompletionStatus(HANDLECompletionPort,LPDWORDlpNumberOfBytes,PULONG_PTRlpCompletionKey,LPOVERLAPPED*lpOverl...
阅读全文
WSARecv()
摘要:简述:从一个套接口接收数据。#include int WSAAPI WSARecv (SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPINT lpFlags,LPWSAOVERLAPPED ...
阅读全文
AcceptEx编辑
摘要:Windows套接字AcceptEx函数接受一个新的连接,返回本地和远程地址,并接收由客户端应用程序发送的第一块数据。Windows 95/98不支持AcceptEx函数。平台SDK:Windows套接字AcceptEx注意:此函数是一个Microsoft特定的扩展,Windows Sockets规...
阅读全文
手把手教你玩转SOCKET模型之重叠I/O篇(上)
摘要:“身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人。我也希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯付出时的吝啬。” ----- 题记 By PiggyXP(小猪)前 言 其实我首先应该道歉,因为7月...
阅读全文
手把手教你玩转SOCKET模型之重叠I/O篇(下)
摘要:四。 实现重叠模型的步骤作 了这么多的准备工作,费了这么多的笔墨,我们终于可以开始着手编码了。其实慢慢的你就会明白,要想透析重叠结构的内部原理也许是要费点功夫,但是只是学会 如何来使用它,却是真的不难,唯一需要理清思路的地方就是和大量的客户端交互的情况下,我们得到事件通知以后,如何得知是哪一个重叠...
阅读全文
使用WSAIoctl获取socket扩展函数(如AcceptEx)的指针
摘要:未获取函数指针就调用函数(如直接连接mswsock.lib并直接调用AcceptEx)的消耗是很大的,因为AcceptEx 实际上是存在于Winsock2结构体系之外的。每次应用程序常试在服务提供层上(mswsock之上)调用AcceptEx时,都要先通过WSAIoctl获取该函数指针。如果要避免这...
阅读全文
用完成例程(Completion Routine)实现的重叠I/O模型
摘要:/// 用完成例程(Completion Routine)实现的重叠I/O模型/// 异步IO模型/// 用完成例程来实现重叠I/O比用事件通知简单得多。在这个模型中,主线程只用不停的接受连接/// 即可;辅助线程判断有没有新的客户端连接被建立,如果有,就为那个客户端套接字激活一个/// 异步的WS...
阅读全文
AcceptEx与WSAEventSelect和Accept
摘要:(转自论坛的一个帖子http://bbs.csdn.net/topics/280032853)AcceptEx主要用于向完成端口投递一个或多个的连接请求。。当有连接时进来,这里分两种情况:1.Accept不接受数据,工作线程收到IO完成操作的通知。2.Aceept必须接收到客户端的部分数量,工作线程...
阅读全文
完成端口(CompletionPort)详解
摘要:手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚…....
阅读全文
INVALID_SOCKET的值
摘要:INVALID_SOCKET的值(2011-06-26 15:06:45)标签: 杂谈 INVALID_SOCKET的值不是-1,原因参考basetsd.h和WinSock2.h:typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;typedef UINT_...
阅读全文
Windows下C语言的Socket编程例子(TCP和UDP)
摘要:一。 server端: 1 #include "stdafx.h" 2 #include 3 #include 4 5 #pragma comment(lib,"ws2_32.lib") 6 7 int main(int argc, char* argv[]) 8 { 9 //初始化...
阅读全文
Socket编程(c语言示例)
摘要:转自:http://blog.csdn.net/dxpqxb/article/details/8166423前言 Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立 关系。此后,应用程序送给Socket的...
阅读全文
critical section的用法
摘要:critical section Critical Section: 不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。每个进程中访问临界资源的那段代码称为临界区(Critical Section)。 每个进程中访问临界资源的那段程序称为临界区(Critical Sect...
阅读全文
慎用WSACleanup()
摘要:中止Windows Sockets DLL的使用. #include int PASCAL FAR WSACleanup ( void );应用程序或DLL在使用Windows Sockets服务之前必须要进行一次成功的WSAStartup()调用.当它完成了Windows Socket...
阅读全文
winsock的io模型(终极篇)
摘要:最近在看服务器框架的搭建,看了不少,都是零零碎碎的,觉得看的差不多了,可以写点最后的总结了,然后,竟然发现了这篇文章,总结做的特别好,肯定比我总结写要好多了,所以我也就不写了,直接转吧。。。。。。套接字模式:锁定、非锁定套接字I/O模型: select(选择)WSAAsyncSelect(异步选择)...
阅读全文
ioctlsocket()函数是干什么用的?它返回值是什么?共有几个参数?它的各个参数是干什么用的?
摘要:1.ioctlsocket()简述:控制套接口的模式。#includeintPASCALFARioctlsocket(SOCKETs,longcmd,u_longFAR*argp);s:一个标识套接口的描述字。cmd:对套接口s的操作命令。argp:指向cmd命令所带参数的指针。注释:本函数可用于任...
阅读全文