📄 cioserver.inc
字号:
;.if [edi].m_hCompPort!=0
; invoke PostQueuedCompletionStatus,[edi].m_hCompPort,0,NULL,NULL
; mov [edi].m_hCompPort,0
;.endif
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;EQU 设置
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_DEBUG EQU 1
ERROR_BUFSIZE EQU 1024
DATA_BUFSIZE EQU 8192
WSA_FLAG_OVERLAPPED EQU 1
OP_READ EQU 1
OP_WRITE EQU 2
;OP_ACCEPT EQU 3
SD_BOTH EQU 02h
;数据缓冲区结构
WSABUF STRUCT
len dd ?
buf dd ?
WSABUF ENDS
;数据重叠结构
SOCKETCONTEXT STRUCT
Overlapped OVERLAPPED <> ;覆盖参数
DataBuf WSABUF <> ;接收缓冲区{缓冲区大小,缓冲区指针}〖指针指向下面的缓冲区〗
Buffer db DATA_BUFSIZE dup(?) ;发送缓冲区
SendSize dd ? ;需要发送字节数
BytesRecv dd ? ;接收到的字节数
BytesSend dd ? ;已经发送字节数
dwIoFlag dd ? ;IO标志【读/写】
hListen dd ? ;服务器Socket侦听句柄
hAccept dd ? ;客户端Socket连接句柄
hCompPort dd ? ;关联到的完成端口
hClass dd ? ;类句柄
SOCKETCONTEXT ENDS
ifndef _CTEXT_
_CTEXT_ EQU 1
CTEXT MACRO y:VARARG
LOCAL sym
CONST segment
IFIDNI <y>,<>
sym db 0
ELSE
sym db y,0
ENDIF
CONST ends
EXITM <OFFSET sym>
ENDM
;将M2值赋给M1
m2m MACRO M1, M2
push M2
pop M1
ENDM
endif
_ServerWorkProc PROTO :DWORD
CLS_IOSKT_Init PROTO :DWORD
IOSKT_Destructor PROTO :DWORD
IOSKT_SetLastErr PROTO :DWORD,:DWORD
IOSKT_SetWarning PROTO :DWORD,:DWORD
IOSKT_GetLastErr PROTO :DWORD
IOSKT_InitNetWork PROTO :DWORD
IOSKT_UnInitWinsock2 PROTO :DWORD
IOSKT_Start PROTO :DWORD,:DWORD,:DWORD
IOSKT_Stop PROTO :DWORD
CLS_IOSKT_InitPto TYPEDEF PROTO :DWORD
IOSKT_DestructorPto TYPEDEF PROTO :DWORD
IOSKT_SetLastErrPto TYPEDEF PROTO :DWORD,:DWORD
IOSKT_SetWarningPto TYPEDEF PROTO :DWORD,:DWORD
IOSKT_GetLastErrPto TYPEDEF PROTO :DWORD
IOSKT_InitNetWorkPto TYPEDEF PROTO :DWORD
IOSKT_UnInitNetWorkPto TYPEDEF PROTO :DWORD
IOSKT_StartPto TYPEDEF PROTO :DWORD,:DWORD,:DWORD
IOSKT_StopPto TYPEDEF PROTO :DWORD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -