VC控制台网络消息获取

ReturnBtoo ReturnBtoo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
程序的问题是不知道怎么设置消息的入口函数

int main(int argc, char* argv[])
{
//Get Title
M_HWND=FindWindow(///);

//inti the socket array
// Create Application Thread
// Create Send Thread

//Create Message Loop
while(true) {
if(PeekMessage(&M_MSG,NULL,0,0,PM_NOREMOVE)){
if(!GetMessage(&M_MSG,NULL,0,0))
return M_MSG.wParam;
TranslateMessage(&M_MSG);
DispatchMessage(&M_MSG);
}
}
return 1;
}

static DWORD WINAPI ApplicationThread(LPVOID pVoid)
{
int nRetCode;

WSADATA m_WsaData;
UINT m_VersionSock;
//Test Socket Version
printf("Test Socket Version\n");
m_VersionSock=MAKEWORD(2,2);
nRetCode = WSAStartup(m_VersionSock, &m_WsaData);
if (nRetCode == SOCKET_ERROR){
printf("Version Error.\n");
return 0;
}
//Create Socket
printf("Create Socket\n");
m_ServerSocket = socket(AF_INET,
SOCK_STREAM,
IPPROTO_TCP);

if (m_ServerSocket < 0){
printf("fail to Create Socket.\n");
return 0;
}
m_ServAddr.sin_family=AF_INET;
m_ServAddr.sin_addr.S_un.S_addr=inet_addr(SERVER_TCP_IP);//htonl(INADDR_ANY);
m_ServAddr.sin_port=htons(SERVER_TCP_PORT);

//bind the socket to local ip and port
printf("bind the socket to local ip and port\n");
nRetCode=bind(m_ServerSocket,(struct sockaddr*)&m_ServAddr,sizeof(m_ServAddr));
if(nRetCode==0){

}
else{
printf("Bind=%d\n",nRetCode);
return nRetCode;
}

nRetCode=WSAAsyncSelect(m_ServerSocket, M_HWND, WM_USER+14, //allocate message number to socket event
FD_ACCEPT | FD_CLOSE | FD_READ | FD_WRITE);
if(nRetCode==0){
printf("Select Success!\n");
}
else{
printf("Fail to Select, Return Value = %d\n",nRetCode);
}
//listen
printf("Listen the Connect Request\n");
nRetCode=listen(m_ServerSocket,10);
if(nRetCode==0){
printf("ServerSocket Id=%d\n",m_ServerSocket);
printf("Server Windows Hwnd=%d\n",M_HWND);
}else{
printf("listen=%d\n",nRetCode);
return nRetCode;
}

return 1;
以上都没有问题//
}
//做了很多尝试,函数不能获得网络消息。
LRESULT CALLBACK WndProc(HWND M_HWND,unsigned M_MSG,WPARAM wParam,LPARAM lParam)
{
long i;
int m_AddSize;
int nRetCode
switch(M_MSG)
{

case WM_PAINT:
break;
case WM_USER+14:
if(WSAGETSELECTERROR(lParam)){
closesocket(wParam);
break;
}
switch(WSAGETSELECTEVENT(lParam)){
case FD_ACCEPT: break;
case FD_READ:
//HANDLE FD_READ EVENT
break;
case FD_WRITE:
break;
case FD_CLOSE:


break;
}
break;
default:
return DefWindowProc(M_HWND,M_MSG,wParam,lParam);
break;
}
return 0;
}
请大家帮忙
...全文
评论 12
收藏 已收藏
分享
返回顶部
ReturnBtoo
网络编程 18,356 成员 64,161 内容