如何让自定义消息自动发送,类似MFC CSocket类的 OnReceive()

jeffreyren 2001-06-02 04:53:00
我用MFC写程序,但是用到socket的地方就用WinSocket API写,
MFC的CSocket类有OnRecive()函数,每当有网络的连接的请求就响应。
但是我用的不是MFC socket类。
我想自定义了一个消息,用来当有网络的连接请求就响应。

1) #define WM_MyReceive USER +100

2) LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
// TODO: 处理用户自定义消息
}

3)在类头文件的AFX_MSG块中说明消息处理函数
afx_msg LRESULT OnMyReceive(WPARAM wParam, LPARAM lParam);

4)在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。
ON_MESSAGE(WM_MyReceive , OnMyReceive)

以上四步建立了一个自定义消息,但是,我现在只能用SendMessage函数一次一次的调用。如何让它在收到请求后自动响应呢?
...全文
252 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeffreyren 2001-06-03
  • 打赏
  • 举报
回复
Sorry, 我看错了。 谢谢你们的回答
valmar 2001-06-03
  • 打赏
  • 举报
回复
FMD已经讲的很清楚了
首先定义一个宏
#define WM_SOCKET WM_USER+100 (如何定义自己决定啦)
然后...
WSAAsyncSelect (SOCKET s,HWND hWnd,unsigned int wMsg,long lEvent);
这样,当lEvent中指定的类型发生时,就会发送一个wMsg的消息给hWnd。
这时,你在hWnd里建立消息映射,就如FMD写的那样。

如果你要接受响应,那么lEvent中就必须包含FD_READ,要连接响应就包含FD_CONNECT,诸如此类。
jeffreyren 2001-06-03
  • 打赏
  • 举报
回复
请问: 到底如何让程序一旦接收到请求就响应?

valmar 2001-06-03
  • 打赏
  • 举报
回复
先看一下再说不急嘛,好像没人说那是MFC的东东。
jeffreyren 2001-06-03
  • 打赏
  • 举报
回复
我知道用MFC类的socket很方便,但是我现在要用WinSocket实现。

谢谢
FMD 2001-06-03
  • 打赏
  • 举报
回复
valmar(林枫) 说得对
WSAAsyncSelect(m_client,this->m_hWnd,WM_SOCKET,FD_ACCEPT|FD_CLOSE|FD_READ|FD_WRITE);

Socket可以做成基于消息的模式( WM_SOCKET是我自定义的消息)

响应此消息时,分流到你自己的处理函数中去。

RESULT CMainWnd::OnSocketEvent(WPARAM wParam,LPARAM lParam)
{
if(WSAGETSELECTERROR(lParam))
{
closesocket(wParam);
return 0;
}
switch(WSAGETSELECTEVENT(lParam))
{
case FD_CLOSE:
OnSocketClose(wParam);
break;
case FD_ACCEPT:
OnSocketAccept(wParam);
break;
case FD_READ:
OnSocketRead(wParam);
break;
}
return 1;

}
baichichi 2001-06-03
  • 打赏
  • 举报
回复
那我可救不了你.
jeffreyren 2001-06-03
  • 打赏
  • 举报
回复
我不打算用MFC类的Socket写。
valmar 2001-06-03
  • 打赏
  • 举报
回复
使用WSAAsyncSelect,具体用法看看msdn吧。
jeffreyren 2001-06-03
  • 打赏
  • 举报
回复
?
jeffreyren 2001-06-02
  • 打赏
  • 举报
回复
please

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧