mfc socket 如何接收数据

futosky 2010-02-17 04:36:08
在看远程控制编程,我在 控制台模式下能用 循环得到数据,但是在mfc下该怎么弄呢?书上是写在了一事件里
是这样说的: 当有信息返回,socket接收到信息时,触发OnsocketRead事件,相依代码如下:

LRESULT CClientDlg::OnSocketRead(WPARAM wParam,LPARAM lParam)
{

.....
想不通如何触发?自动的,编译通不过啊
...全文
313 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
nbeleven11 2012-02-26
  • 打赏
  • 举报
回复
回到你的另一个贴了,我说的是这个问题,我和你的操作步骤一样,就是不行,你最后是怎么解的?非常感谢!
Eleven 2010-05-17
  • 打赏
  • 举报
回复
结贴通知:
请lz注意结贴。。。。

否则以无满意结贴来强制结贴。。。。
zpf82118 2010-02-20
  • 打赏
  • 举报
回复
自己写的话用WSAAsyncSelect
但如果是用的MFC类的话,比如CSocket,就重载OnReceive函数即可
TANG_XIAO_BIN 2010-02-18
  • 打赏
  • 举报
回复
用WSASelect吧!你用的函数太久了!
futosky 2010-02-18
  • 打赏
  • 举报
回复
可不可以 直接用MFC的消息映射ON_COMMAND(WM_USER+1,OnSocketRead)呢?
futosky 2010-02-18
  • 打赏
  • 举报
回复
这样定义了:
1 const int WM_SOCKET_READ=WM_USER+103;
2 // Implementation
protected:
HICON m_hIcon;

// Generated message map functions
//{{AFX_MSG(CLiaoDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void Onconnect();
afx_msg void OnClose();
afx_msg void OnSend();
//}}AFX_MSG
afx_msg LRESULT OnSocketRead(WPARAM wParam,LPARAM lParam);//自定义消息的函数
DECLARE_MESSAGE_MAP()
};
3 BEGIN_MESSAGE_MAP(CLiaoDlg, CDialog)
//{{AFX_MSG_MAP(CLiaoDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_CONNECT, Onconnect)
ON_BN_CLICKED(IDC_CLOSE, OnClose)
ON_BN_CLICKED(IDC_SEND, OnSend)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_SOCKET_READ, OnSocketRead)//定义消息
END_MESSAGE_MAP()

4 下面就是函数的实现了,可是还是收不到数据。我找了这本书附带的光盘源代码,就是这样,还有哪里没注意到吗?编译光盘的代码可以收到。
futosky 2010-02-18
  • 打赏
  • 举报
回复
关于自定义消息:比如 定义消息#define WM_MY_READ (WM_USER+100),系统如何能把SOCKET接收数据映射到这个消息呢?
csl312211865 2010-02-17
  • 打赏
  • 举报
回复
可以在窗口的OnInitDialog中,用int WSAAsyncSelect(SOCKET s,HWND hWnd,unsigned int wMsg,long lEvent);注册网络事件,然后在响应消息的时候,检查是否为 有数据可读,即FD_READ,在里面处理收到的消息即可。具体代码请参考《Windows网络编程(第2版)》。另外孙鑫的《深入详解VC++》也涉及到一部分的网络编程,都是很基础的东西。
futosky 2010-02-17
  • 打赏
  • 举报
回复
书上说的当 发送按钮 按下时触发OnSocketSend事件,服务端有信息返回时,则当客户端收到信息时触发OnSocketRead事件,接下来是这个函数对recv的一些封装,找不到其它地方了
blingpro 2010-02-17
  • 打赏
  • 举报
回复
这个事件是书上封装了一次吧,你仔细看看源码!
futosky 2010-02-17
  • 打赏
  • 举报
回复
编译都不过啊。我怎么接受啊。。。
ydyn1988 2010-02-17
  • 打赏
  • 举报
回复
向服务器发送命令
回复内容太短了!
futosky 2010-02-17
  • 打赏
  • 举报
回复
刚接触MFC不久,边看边练手的,找不到这个事件啊。
  • 打赏
  • 举报
回复
事件绑定呢
继承改写弄了吗???
futosky 2010-02-17
  • 打赏
  • 举报
回复
但是编译不过啊,-----
OOOqqqOOO 2010-02-17
  • 打赏
  • 举报
回复
人家发数据来,就触发了。
futosky 2010-02-17
  • 打赏
  • 举报
回复
囧-------------------------
wwm1268 2010-02-17
  • 打赏
  • 举报
回复
hahaasasasassssssssssssssssssssssssssssssssssssss

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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