首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CMainFrame OnCreate 遇到的有关问题

2012-04-25 
CMainFrame OnCreate遇到的问题int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){hostent* phost

CMainFrame OnCreate 遇到的问题
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
hostent* phost = gethostbyname("");
char* localIP =inet_ntoa (*(struct in_addr *)*phost->h_addr_list);
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = inet_addr(localIP);
addr.sin_port = htons(5001);
//创建套接字
m_Socket = socket(AF_INET,SOCK_DGRAM,0);
if (m_Socket == INVALID_SOCKET)
{
MessageBox("套接字创建失败!");
  return -1;
}

char* len = "512";
if (setsockopt(m_Socket,SOL_SOCKET,SO_SNDBUF,len,4)!= 0)
{
MessageBox("设置失败!");
}
//绑定套接字
if (bind(m_Socket,(sockaddr*)&addr,sizeof(addr))==SOCKET_ERROR)
{
DWORD dwError=::GetLastError();
}
//m_ServerIP=sys.sysinfo.ServerIp;

1:WSAAsyncSelect(m_Socket,this->m_hWnd,CM_RECEIVED,FD_READ);//////////////////////////////////////////////////////////////////////////

//2::PostMessage(this->GetSafeHwnd(),WM_USERMSG,0,0);
  return 0;
}

CM_RECEIVED----------对应相应消息函数
void CMainFrame::OnReceived()
{
  //这里我删除了所有的代码
  //为空
}

--------------------------------------------
当从客户端想端口5001发送请求的时候

程序就会异常结束



[解决办法]

C/C++ code
//MainFrm.h#define CM_RECEIVED WM_USER+101//{{AFX_MSG(CMainFrame)  afx_msg void Onrecved(SOCKET sock, long lEvent);//...//}}AFX_MSG//MainFrm.cppBEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)  ON_MESSAGE(CM_RECEIVED,OnReceived)//...END_MESSAGE_MAPvoid CMainFrame::OnReceived(SOCKET sock, long lEvent){//....} 

热点排行