易语言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", , StrFormatByteSize64A StrFormatByteSize64A 比如: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
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。