VC控制台网络消息获取
程序的问题是不知道怎么设置消息的入口函数
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;
}
请大家帮忙