高手 请进 高分悬赏
动态库 TCPIP.DLL
技术要求:
使用标准的Win32动态库,不使用MFC。使用WAPI 进行编程,功能实现TCP/IP 协议的封装。支持多线程的调用与连接。导出函数;
回调函数类型定义;
typedef bool(*CBFN_TCPIP_ON_ACCEPT)(int ConnSocket,char *pData,UINT Size);
当有客户端请求连接时调用,如果闰许连接则返回TRUE,否则返回FALSE;
typedef void(*CBFN_TCPIP_ON_RECV)(int ConnSocket,char *pData,UINT Size);
当有数据接受时调用。
typedef void(*CBFN_TCPIP_ON_CLOSE)(int Socket);
当连接被中断时调用;
导出函数定义;
设置回调函数
void SetCallBackFn(CBFN_TCPIP_ON_ACCEPT pCbfnOnAccept,
*CBFN_TCPIP_ON_RECV pCbfnOnRecv,
*CBFN_TCPIP_ON_CLOSE pCbfnOnClose);
使用服务器方式启动指定的地址和端口,以及使用指定的协议。
返回直 :为-1 则失败,否则为一个当前使用的套接字,作为连接鉴定字。
注意;使用服务器方式必须支持多个TCP/IP客户端同时进行连接,当有一个客户端连接以后,需要启动线程处理,传入的端口号为主机地
址,需转换为网络地址。
int StartAsClient(char *Address,UINT Port,bool UseTcpOrUdp=true);
使用客户端方式连接到指定服务器,需启动一个线程。
void Close(int Socket);
关闭指定的连接。注意:如果关闭的连接是服务器的监听连接,则需关闭其所有的客户端连接,以及连接线程。
bool SendData(int Socket,char *pData,Uint Size);
在指定套接字上发送数据,注意线程安全,要求为可重入函数
所有功能应直接调用DLL文件