关于关闭SOCKET再次使用的问题
在整合两套代码为一个程序,里面的SOCKET有点复杂
现在搞不明白,在主程序OnInitialUpdate()里面调用OnServerOpen(); 里面是初始化套接字,然后bind,然后是listen,之后是用到WSAAsyncSelect(m_pDoc->m_hServerSocket, m_hWnd, WM_SERVER_ACCEPT, FD_ACCEPT);进入到OnServerAccept:里面是accept 给m_hClientSocket ,然后又是WSAAsyncSelect(m_hClientSocket,m_hWnd,WM_CLIENT_READCLOSE,FD_READ|FD_CLOSE);进入到OnClientReadClose();里面判断SAGETSELECTEVENT(lParam);是读取还是关闭,读取则进入OnClientRead():里面是recv(m_hClientSocket, (LPSTR)(Client_Read+iEnd), iSpaceRemaining, NO_FLAGS); 判断Client_Read的参数,然后执行不同的指令(比如“指令1”),上面说的这些是为了让大家了解这个程序的过程
我的问题是 在判断了Client_Read后我要closesocket(m_pDoc->m_hServerSocket);然后执行要执行的函数fun();而且在fun();里面又重新创建套接字ClientSock,bind,listen,accept但是在执行完fun();关闭了ClientSock,回到了原来的代码段,又要用到原来的socket,改如何做呢?直接调用OnServerOpen();但是在客户端发送新的命令不起作用,用OnInitialUpdate();我做了个判断,第二次执行命令(“指令2”)程序就直接结束了,这是为什么?我的QQ 87451427 希望大家指教 不知道我说的明不明白
[解决办法]
[解决办法]
[解决办法]
好专业的问题,表述不清,看得累
你要把原来的socket关闭掉做什么呢