IOCP与TCP套接字编程处理事件

易语言 2020-07-04 12:54:05

.子程序 子程序_服务端_创建服务端套接字, 整数型, , 返回套接字句柄,错误返回0
.参数 参_端口, 整数型, , port
.参数 参_IP地址, 文本型, 可空
.局部变量 私_地址信息, 套接字地址
.局部变量 私_套接字句柄

私_套接字句柄 = 创建套接字_ (#AF_INET, #SOCK_STREAM, 0, 0, 0, #WSA_FLAG_OVERLAPPED)
.如果真 (私_套接字句柄 = #INVALID_SOCKET)
返回 (0)
.如果真结束
私_地址信息.常量 = #AF_INET
.如果真 (是否为空 (参_IP地址) = 假)
私_地址信息.地址 = inet_addr (参_IP地址)
.如果真结束
私_地址信息.端口 = 端口到网络端口_ (参_端口) ' 开始绑定端口:
.如果真 (绑定地址和端口_ (私_套接字句柄, 私_地址信息, 16) = 0)
.如果真 (置监听_ (私_套接字句柄, #SOMAXCONN) = 0) ' 一次可进入2147483647个服务端 ' 开始监听端口
子程序_设置套接字 (私_套接字句柄)
返回 (私_套接字句柄)
.如果真结束

.如果真结束
销毁套接字_ (私_套接字句柄)
私_套接字句柄 = 0