//
//
//
//
//
//
//
//
//
//
软件Tags:
易语言IOCP分包源码系统结构:子程序_服务器回调,sock处理,客户进入,客户离开,数据到达,子程序_客户回调,窗口2消息处理,数据到达客户,组包数据,解包数据,包结束标志,初始化模块,iocp服务端_启动服务,iocp服务端_停止服务,iocp服务端_断开客户,iocp服务端_取客户信息_,iocp服务端_取客户信息,iocp服务端_读数据_缓冲区,iocp服务端_写数据_缓冲区,子程序_服务器回调11111111111111111111,iocp服务端_清除数据,执行子程序_,调用子程序_,去协议头,释放内存池数据,释放模块,iocp服务器_发送字节集,iocp客户端_初始化客户端,iocp客户端_释放客户端,iocp客户端_连接,iocp客户端_断开连接,iocp客户端_读数据_缓冲区,iocp客户端_写数据_缓冲区,iocp客户端_异步发送字节集,封装协议,iocp发送字节集,GetDiskFreeSpaceExA,StrFormatByteSize64A,gethostname,WSAStartup,WSACleanup,closesocket,socket,htons,inet_addr,bind,listen,accept,inet_ntoa,ntohs,send,recv,getsockname,getpeername,WSAAsyncSelect,select,connect,枚举进程_,枚举进程模块_,取模块文件名扩展_,取进程内存信息_, ======程序集1 || ||------_启动子程序 || ||------_临时子程序 || || ======窗口程序集1 || ||------_按钮1_被单击 || ||------_窗口1_创建完毕 || ||------子程序_服务器回调 || ||------_按钮2_被单击 || ||------_按钮3_被单击 || ||------sock处理 || ||------_按钮4_被单击 || ||------客户进入 || ||------客户离开 || ||------数据到达 || ||------_按钮5_被单击 || ||------_按钮6_被单击 || ||------_按钮8_被单击 || ||------_按钮9_被单击 || ||------_窗口1_将被销毁 || || ======窗口程序集2 || ||------_按钮3_被单击 || ||------_按钮1_被单击 || ||------子程序_客户回调 || ||------_按钮2_被单击 || ||------_按钮5_被单击 || ||------_窗口2_创建完毕 || ||------窗口2消息处理 || ||------数据到达客户 || ||------_按钮4_被单击 || ||------_按钮6_被单击 || ||------组包数据 || ||------解包数据 || ||------包结束标志 || ||------_按钮7_被单击 || ||------_时钟1_周期事件 || ||------_按钮8_被单击 || ||------_时钟2_周期事件 || || ======iocp程序集 || ||------初始化模块 || || ======iocp程序集_服务器 || ||------_Server_Create || ||------iocp服务端_启动服务 || ||------iocp服务端_停止服务 || ||------iocp服务端_断开客户 || ||------iocp服务端_取客户信息_ || ||------iocp服务端_取客户信息 || ||------iocp服务端_读数据_缓冲区 || ||------iocp服务端_写数据_缓冲区 || ||------子程序_服务器回调11111111111111111111 || ||------iocp服务端_清除数据 || ||------执行子程序_ || ||------调用子程序_ || ||------去协议头 || ||------释放内存池数据 || ||------释放模块 || ||------iocp服务器_发送字节集 || || ======iocp_程序集_客户 || ||------_Client_Startup || ||------iocp客户端_初始化客户端 || ||------iocp客户端_释放客户端 || ||------iocp客户端_连接 || ||------iocp客户端_断开连接 || ||------iocp客户端_读数据_缓冲区 || ||------iocp客户端_写数据_缓冲区 || ||------iocp客户端_异步发送字节集 || ||------封装协议 || ||------iocp发送字节集 || || ======调用的Dll || ||---[dll]------GetDiskFreeSpaceExA || ||---[dll]------StrFormatByteSize64A || ||---[dll]------gethostname || ||---[dll]------WSAStartup || ||---[dll]------WSACleanup || ||---[dll]------closesocket || ||---[dll]------socket || ||---[dll]------htons || ||---[dll]------inet_addr || ||---[dll]------bind || ||---[dll]------listen || ||---[dll]------accept || ||---[dll]------inet_ntoa || ||---[dll]------ntohs || ||---[dll]------send || ||---[dll]------recv || ||---[dll]------getsockname || ||---[dll]------getpeername || ||---[dll]------WSAAsyncSelect || ||---[dll]------select || ||---[dll]------connect || ||---[dll]------枚举进程_ || ||---[dll]------枚举进程模块_ || ||---[dll]------取模块文件名扩展_ || ||---[dll]------取进程内存信息_ 调用的DLL命令: .DLL命令GetDiskFreeSpaceExA,整数型,"kernel32.dll","GetDiskFreeSpaceExA" .参数lpDirectoryName,文本型 .参数lpFreeBytesAvailableToCaller,长整数型,传址 .参数lpTotalNumberOfBytes,长整数型,传址 .参数lpTotalNumberOfFreeBytes,长整数型,传址 .DLL命令StrFormatByteSize64A,整数型,"shlwapi.dll","StrFormatByteSize64A",,StrFormatByteSize64AStrFormatByteSize64A比如:1024返回1.0KB .参数数值,长整数型,,qdw .参数文本缓冲区,文本型,传址,szBuf .参数文本缓冲区大小,整数型,传址,uiBufSize .DLL命令gethostname,整数型,"ws2_32.dll","gethostname",,取本机名,失败返回-1,成功返回0。 .参数name,文本型,传址,给变量,用于存放名称 .参数namelen,整数型,,上一个参数的长度 .DLL命令WSAStartup,整数型,"ws2_32.dll","WSAStartup",,初始化WnSocket服务 .参数必需版本,整数型,,wVersionRequired .参数服务信息,套接字信息,,lpWSAData .DLL命令WSACleanup,整数型,"ws2_32.dll","WSACleanup",,卸载Winsocket服务 .DLL命令closesocket,整数型,"ws2_32.dll","closesocket",,销毁套接字 .参数套接字描述符,整数型 .DLL命令socket,整数型,"ws2_32.dll","socket",,创建套接字 .参数协议族,整数型,,af使用的通信协议的协议族 .参数类型,整数型,,lType流套接字类型 .参数协议,整数型,,protocol使用的通信协议 .DLL命令htons,短整数型,"ws2_32.dll","htons",,转换为network排列方式的数目 .参数十六位主机命令,短整数型,,hostshort端口号 .DLL命令inet_addr,整数型,"ws2_32.dll","inet_addr",,点数格式转换为整数格式IP地址-到网络地址_ .参数IP地址,文本型,传址,cp欲被转换的IP地址 .DLL命令bind,整数型,"ws2_32.dll","bind",,绑定一个地址和端口 .参数套接字描述符,整数型 .参数地址结构,套接字地址,传址,地址信息 .参数结构大小,整数型,,地址信息长度(长度16 .DLL命令listen,整数型,"ws2_32.dll","listen",,监听 .参数sockfd,整数型,,套接字描述符 .参数backlog,整数型,,最多容纳客户请求数 .DLL命令accept,整数型,"ws2_32.dll","accept",,等待用户进入并接受连接 .参数s,整数型,,套接字描述符 .参数addr,套接字地址,传址,地址信息 .参数addrlen,整数型,传址,地址信息长度(长度为16) .DLL命令inet_ntoa,整数型,"ws2_32.dll","inet_ntoa",,将整数格式IP地址转换为点数格式(返回值是内存地址指针) .参数网络地址,整数型,,lIn欲转换整数格式IP地址 .DLL命令ntohs,短整数型,"ws2_32.dll","ntohs",,转换为端口号-网络转换到本机 .参数十六位网络端口,短整数型,,netshort欲转换值 .DLL命令send,整数型,"ws2_32.dll","send",,发送数据_(TCP,当这次发送数据未发送完时返回剩余字节数) .参数网络通讯标识符,整数型,,s .参数缓冲区,字节集,传址,buf .参数缓冲区长度,整数型,,lLen .参数标志,整数型,,flags .DLL命令recv,整数型,"ws2_32.dll","recv",,接收字节集数据(TCP,当数据这次未接收完时返回剩余字节数) .参数网络通讯标识符,整数型,,s .参数缓冲区,字节集,传址,buf数据(提供变量) .参数缓冲区长度,整数型,,lLen .参数标志,整数型,,flags .DLL命令getsockname,整数型,"ws2_32.dll","getsockname",,获取本地接口的地址信息(IP和端口)。成功返回0 .参数s,整数型,,句柄 .参数name,套接字地址,传址,地址信息 .参数namelen,整数型,传址,name长度,Sockaddr_in长度为16 .DLL命令getpeername,整数型,"ws2_32.dll","getpeername",,获取远端信息(已连接对方IP和端口)。成功返回0 .参数s,整数型,,句柄 .参数name,套接字地址,传址,地址信息 .参数namelen,整数型,传址,name长度,Sockaddr_in长度为16 .DLL命令WSAAsyncSelect,整数型,"ws2_32.dll","WSAAsyncSelect",,异步选择_本函数自动将套接口设置为非阻塞模式0表明是成功的 .参数网络通讯标识符,整数型,,s标识一个需要事件通知的套接口的描述符 .参数窗口句柄,整数型,,hWnd标识一个在网络事件发生时需要接收消息的窗口句柄 .参数消息值,整数型,,wMsg在网络事件发生时要接收的消息 .参数事件,整数型,,lEvent位屏蔽码,用于指明应用程序感兴趣的网络事件集合. .DLL命令select,整数型,"ws2_32.dll","select" .参数nfds,整数型 .参数readfds,fd_set,传址,指向一组等待可读性检查的套接口 .参数writefds,fd_set,传址,指向一组等待可写性检查的套接口 .参数exceptfds,fd_set,传址,指向一组等待错误检查的套接口 .参数timeout,整数型,传址 .DLL命令connect,整数型,"ws2_32.dll","connect",,连接到服务器(TCP) .参数网络通讯标识符,整数型,,s .参数名称结构,套接字地址,,addr .参数名称结构长度,整数型,,namelen(16) .DLL命令枚举进程_,整数型,"psapi.dll","EnumProcesses" .参数进程标识符,整数型,传址,lpidProcess .参数结构长度,整数型,,cb .参数结构需要长度,整数型,传址,cbNeeded .DLL命令枚举进程模块_,整数型,"psapi.dll","EnumProcessModules" .参数进程句柄,整数型,,hProcess .参数模块句柄,整数型,传址,lphModule .参数结构大小,整数型,,cb .参数需要结构大小,整数型,传址,lpcbNeeded .DLL命令取模块文件名扩展_,整数型,"psapi.dll","GetModuleFileNameExA" .参数进程句柄,整数型,,hProcess .参数模块句柄,整数型,,hModule .参数文件名缓冲区,文本型,,lpFilename .参数缓冲区大小,整数型,,nSize .DLL命令取进程内存信息_,整数型,"psapi.dll","GetProcessMemoryInfo" .参数进程句柄,整数型,,Process .参数进程内存结构,进程内存统计_,,ppsmemCounters .参数结构大小,整数型,,cb
