随笔分类 -  网络编程

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