这是我自己编写的 测试好使通过 //======================================================================== //绑定协议栈-TCPServer mode //======================================================================== int dllBindTCPSockServer(SOCKADDR_IN pSockAddr,RECV_DATA_CALLBACK DataCallBack, VOID* pContext) { int res = 0; //Create Socket if(glb_SockTCPServer!=NULL) { OutputDebugString("套接字已存在!"); return -1; } glb_SockTCPServer = socket(AF_INET,SOCK_STREAM,0); //Create Socket res = WSAGetLastError(); if(res) { glb_SockTCPServer = NULL; OutputDebugString("套接字建立失败!"); return res; } pSockAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY); pSockAddr.sin_family=AF_INET; pSockAddr.sin_port = htons(pSockAddr.sin_port); res = bind(glb_SockTCPServer,(SOCKADDR*)&pSockAddr,sizeof(SOCKADDR)); if(res) { OutputDebugString("绑定失败!"); closesocket(glb_SockTCPServer); glb_SockTCPServer = NULL; return res; } OutputDebugString("绑定成功!"); res = listen(glb_SockTCPServer,5); if(res) { OutputDebugString("监听失败!"); closesocket(glb_SockTCPServer); glb_SockTCPServer = NULL; return res; } OutputDebugString("开始网络监听..."); //Register RecvDataCallBackServer glb_lpFunCallBackTCPServer = DataCallBack; glb_pContext = pContext; //Create ListenThread UINT (WINAPI * pFnStartAddr)(LPVOID); pFnStartAddr = WinSockListenThread; glb_WinSockListenThread = (HANDLE)_beginthreadex(NULL, 0, pFnStartAddr, NULL, 0,//0 for running, CREATE_SUSPENDED NULL); if (glb_WinSockListenThread==NULL) { OutputDebugString("创建监听线程失败!"); closesocket(glb_SockTCPServer); glb_SockTCPServer = NULL; glb_WinSockListenThread = NULL; return -2; } return 0; }
- 1
- 粉丝: 1
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页