易语言Socket编程之Select模型源码
系统结构:CreateSocket,FD_CLR,FD_ISSET,FD_SET,FD_ZERO,ThreadAcceptProc,ThreadProc,GetClientInfo,htonl,ntohl,ntohs,htons,WSAStartup,WSACleanup,closesocket,bind,inet_ntoa,inet_addr,connect,send,recv,recvfrom,sendto,setsockopt,getsockname,accept,listen,socket,shutdown,gethostbyname,InterlockedIncrement,CreateThread,select,getpeername,EnterCriticalSection,LeaveCriticalSection,
======程序集1
| |
| |------ _启动子程序
| |
| |
======窗口程序集1
| |
| |------ __frmMain_创建完毕
| |
| |------ __frmMain_将被销毁
| |
| |------ CreateSocket
| |
| |------ FD_CLR
| |
| |------ FD_ISSET
| |
| |------ FD_SET
| |
| |------ FD_ZERO
| |
| |------ _按钮1_被单击
| |
| |------ ThreadAcceptProc
| |
| |------ ThreadProc
| |
| |------ GetClientInfo
| |
| |------ _按钮2_被单击
| |
| |
======调用的Dll
| |
| |---[dll]------ htonl
| |
| |---[dll]------ ntohl
| |
| |---[dll]------ ntohs
| |
| |---[dll]------ htons
| |
| |---[dll]------ WSAStartup
| |
| |---[dll]------ WSACleanup
| |
| |---[dll]------ closesocket
| |
| |---[dll]------ bind
| |
| |---[dll]------ inet_ntoa
| |
| |---[dll]------ inet_addr
| |
| |---[dll]------ connect
| |
| |---[dll]------ send
| |
| |---[dll]------ recv
| |
| |---[dll]------ recvfrom
| |
| |---[dll]------ sendto
| |
| |---[dll]------ setsockopt
| |
| |---[dll]------ getsockname
| |
| |---[dll]------ accept
| |
| |---[dll]------ listen
| |
| |---[dll]------ socket
| |
| |---[dll]------ shutdown
| |
| |---[dll]------ gethostbyname
| |
| |---[dll]------ InterlockedIncrement
| |
| |---[dll]------ CreateThread
| |
| |---[dll]------ select
| |
| |---[dll]------ getpeername
| |
| |---[dll]------ EnterCriticalSection
| |
| |---[dll]------ LeaveCriticalSection
调用的DLL命令:
.DLL命令 htonl, 整数型, "ws2_32.dll", "htonl", , 公开,
.参数 h, 整数型
.DLL命令 ntohl, 整数型, "ws2_32.dll", "ntohl", , 公开,
.参数 inn, 整数型
.DLL命令 ntohs, 整数型, "ws2_32.dll", "ntohs", , 公开,
.参数 netshort, 短整数型, , 欲转换值
.DLL命令 htons, 短整数型, "ws2_32.dll", "htons", , 公开,
.参数 h, 短整数型
.DLL命令 WSAStartup, 整数型, "ws2_32.dll", "WSAStartup", , 公开, WSAStartup 初始化WnSocket服务 启动使用Winsock的DLL的一个进程 如果成功,WSAStartup函数返回零
.参数 必需版本, 整数型, , wVersionRequired 调用者可以使用的最高版本。在高字节指定次要版本号的低位字节指定了主版本号
.参数 服务信息, WSAData, , lpWSAData 指向WSADATA数据结构,获得对Windows Sockets实现细节
.DLL命令 WSACleanup, 整数型, "ws2_32.dll", "WSACleanup", , 公开, WSACleanup 卸载Winsocket服务 终止ws2_32.dll文件的使用
.DLL命令 closesocket, 整数型, "ws2_32.dll", "closesocket", , 公开, 销毁套接字
.参数 sock, 整数型
.DLL命令 bind, 整数型, "ws2_32.dll", "bind", , 公开, 绑定一个地址和端口
.参数 套接字描述符, 整数型
.参数 地址结构, sockaddr_in, 传址, 地址信息
.参数 结构大小, 整数型, , 16,地址信息长度
.DLL命令 inet_ntoa, 整数型, "ws2_32.dll", "inet_ntoa", , 公开, 将整数格式IP地址转换为点数格式(返回值是内存地址指针)
.参数 网络地址, 整数型, , lIn欲转换整数格式IP地址
.DLL命令 inet_addr, 整数型, "ws2_32.dll", "inet_addr", , 公开, 文本IP到整型_,失败返回-1,成功返回整型IP地址
.参数 IP, 文本型
.DLL命令 connect, 整数型, "ws2_32.dll", "connect", , 公开, 连接到服务器(TCP)
.参数 网络通讯标识符, 整数型, , s
.参数 名称结构, sockaddr_in, , addr
.参数 名称结构长度, 整数型, , namelen(16)
.DLL命令 send, 整数型, "ws2_32.dll", "send", , 公开, 发送数据_(TCP,当这次发送数据未发送完时返回剩余字节数)
.参数 网络通讯标识符, 整数型, , s
.参数 缓冲区, 字节集, 传址, buf
.参数 缓冲区长度, 整数型, , lLen
.参数 标志, 整数型, , flags
.DLL命令 recv, 整数型, "ws2_32.dll", "recv", , 公开, 接收字节集数据(TCP,当数据这次未接收完时返回剩余字节数)
.参数 网络通讯标识符, 整数型, , s
.参数 缓冲区, 字节集, 传址, buf数据(提供变量)
.参数 缓冲区长度, 整数型, , lLen
.参数 标志, 整数型, , flags
.DLL命令 recvfrom, 整数型, "ws2_32.dll", "recvfrom", , 公开, 接收数据(UDP)
.参数 s, 整数型, , 套接字描述符
.参数 buf, 字节集, 传址, 数据(提供变量)
.参数 len, 整数型, , 数据长度
.参数 flags, 整数型, , 0
.参数 from, sockaddr_in, 传址, 来源地址信息(提供变量)
.参数 fromlen, 整数型, 传址, 地址信息长度(提供变量)
.DLL命令 sendto, 整数型, "ws2_32.dll", "sendto", , 公开, 发送数据(UDP)
.参数 s, 整数型, , 套接字描述符
.参数 buf, 字节集, 传址, 数据
.参数 len, 整数型, , 数据长度
.参数 flags, 整数型, , 0
.参数 to, sockaddr_in, 传址, 目标地址信息
.参数 tolen, 整数型, , 地址信息长度
.DLL命令 setsockopt, 整数型, "ws2_32.dll", "setsockopt", , 公开, setsockopt 设置一个套接字选项
.参数 网络通讯标识符, 整数型, , s 网络通讯标识符 描述标识一个套接字。
.参数 级别, 整数型, , level 级别 在该选项定义(例如水平,SOL_SOCKET)。
.参数 操作名称, 整数型, , optname 操作名称 套接字选项的值被设置(例如,SO_BROADCAST)。该optname参数必须是一个套接字选项定义在指定的水平,或行为是不确定的
.参数 操作结构, 整数型, , optval 操作结构 指针在其中所请求的选项的值是指定的缓冲区
.参数 操作结构长度, 整数型, , optlen 操作结构长度 大小,指出以字节的缓冲区,由optval参数
.DLL命令 getsockname, 整数型, "ws2_32.dll", "getsockname", , 公开, 获取本地接口的地址信息(IP和端口)。成功返回0
.参数 s, 整数型, , 句柄
.参数 name, sockaddr_in, 传址, 地址信息
.参数 namelen, 整数型, 传址, name长度,Sockaddr_in长度为16
.DLL命令 accept, 整数型, "ws2_32.dll", "accept", , 公开, accept 在接受功能允许对传入套接字连接尝试
.参数 套接字描述符, 整数型, , s 描述符标识已在侦听状态存入听功能的插座。连接实际上是由同是返回接受插座
.参数 地址信息, sockaddr_in, 传址, addr 可选指向的缓冲区接收连接实体的地址,知道的通信层。该参数的确切地址的格式是由家庭中的地址时确定建立由sockaddr结构创建套接字
.参数 地址信息长度, 整数型, 传址, addrlen 可选指向一个整数,它包含结构长度指向的地址参数 地址信息长度(长度为16)
.DLL命令 listen, 整数型, "ws2_32.dll", "listen", , 公开, listen 在听取地方的功能状态,它是一个进入的连接侦听套接字
.参数 套接字描述符, 整数型, , sockfd
.参数 最多容纳客户请求数, 整数型, , backlog
.DLL命令 socket, 整数型, "ws2_32.dll", "socket", , 公开,
.参数 协议族, 整数型, , af使用的通信协议的协议族
.参数 类型, 整数型, , lType流套接字类型
.参数 协议, 整数型, , protocol使用的通信协议
.DLL命令 shutdown, 整数型, "ws2_32", "shutdown", , 公开,
.参数 s, 整数型
.参数 how, 整数型
.DLL命令 gethostbyname, 整数型, "ws2_32.dll", "gethostbyname"
.参数 name, 文本型
.DLL命令 InterlockedIncrement, 整数型, "kernel32", "InterlockedIncrement", , 增加LONG
.参数 lpAddend, 整数型, 传址
.DLL命令 CreateThread, 整数型, "kernel32.dll", "CreateThread"
.参数 lpThreadAttributes, 整数型, , 默认SECURITY_ATTRIBUTES结构
.参数 dwStackSize, 整数型, , 设置初始栈的大小,以字节为单位,如果为0,那么默认将使用与调用该函数的线程相同的栈空间大小。任何情况下,Windows根据需要动态延长堆栈的大小
.参数 lpStartAddress, 子程序指针, , 指向线程函数的指针,形式:@函数名,函数名称没有限制,但是必须以下列形式声明
.参数 lpParameter, 整数型, , 向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL
.参数 dwCreationFlags, 整数型, , 线程标志,0立即激活
.参数 lpThreadId, 整数型, , 保存新线程的id
.DLL命令 select, 整数型, "ws2_32.dll", "select", 公开, 失败返回-1
.参数 nfds, 整数型, , in,
.参数 readfds, fd_set, 传址, inout, 指向一组等待可读性检查的套接口
.参数 writefds, fd_set, 传址, inout, 指向一组等待可写性检查的套接口
.参数 exceptfds, fd_set, 传址, inout, 指向一组等待错误检查的套接口
.参数 timeout, timeval, , in
.DLL命令 getpeername, 整数型, "ws2_32.dll", "getpeername", , 获取远端信息(已连接对方IP和端口)。成功返回0
.参数 s, 整数型, , 句柄
.参数 name, sockaddr_in, 传址, 地址信息
.参数 namelen, 整数型, 传址, name长度,Sockaddr_in长度为16
.DLL命令 EnterCriticalSection, , "kernel32", "EnterCriticalSection", , 加入临界部分
.参数 lpCriticalSection, CRITICAL_SECTION
.DLL命令 LeaveCriticalSection, , "kernel32", "LeaveCriticalSection", , 保留前一个输入临界段
.参数 lpCriticalSection, CRITICAL_SECTION
原贴 [易语言首发]PCVX小程序解密 因为 我也不懂 就看了下这个 PC小程序解密.e 发出来不知道怎么用,所以 度娘一步步找答案得到 的 自行研究捉摸了下 仅供学习参考 1.打开 PC小程序解...
易语言模块基址获取源码,模块基址获取,GetModuleBaseAddress...
易语言流程控制编译原理源码,流程控制编译原理,是否汉字,读字符,是否运算符,是否逻辑运算符,指针回溯,跳过空格,跳过注释,代码块,取程序返回值,外部接口_代码块执行,外部接口_表达式计算,表达式计算,逻辑判断,文本到逻辑,函数调用,函数_位或,函数_测试,函数_信...
易语言搜索程序隐藏代码源码,搜索程序隐藏代码,枚举子程序...
易语言打鱼学习链表源码,打鱼学习链表,入栈,出栈,清空链表,取顶数据,取索引处值,取长度,取值处索引,插入,删除,倒置,是否为空,到八,入队,出队...
易语言脚本解析类源码,脚本解析类,子程序1,QEHash,创建进入许可证_,进入许可区_,退出许可区_,删除进入许可证_,启动线程_,销毁线程_,寻找字节集_,内存_申请,内存_释放,内存_尺寸,内存_读整数,内存_写整数,内存_复制,内存_写字节集,内存_写文本,内存_读字节集,...
易语言核心算术计算解析源码,核心算术计算解析,信息框3,信息框2...
易语言获取网页和密码例程源码,获取网页和密码例程,取文档对象,取浏览器文档对象_API,注册消息_API,发送消息_API,置鼠标捕获窗口_API,取消鼠标捕获窗口_API,取窗口类名_API,取座标窗口句柄_API,取光标位置_API...
易语言置入代码调用子程序办法源码,置入代码调用子程序办法,普通写法,置入写法...