如何实现C++中MFC基于socket类的UDP通信的同时发送与接收?请各位高手帮帮忙啊。。。。。

本人用C++的MFC编写了一个UDP通信程序,派生了SOCKET类,用SendTo发送,OnReceive接收。具体是这样的,我建了A主对话框和B、C、D子对话框,其中A... 本人用C++的MFC编写了一个UDP通信程序,派生了SOCKET类,用SendTo发送,OnReceive接收。具体是这样的,我建了A主对话框和B、C、D子对话框,其中A、B中有sendto,接收只在A中进行,现在,这个程序跟UDP调试助手(网上下载的)进行通信,可以单独发送,单独接收,但是一旦我这个程序不断的接收数据,在B中就无法输入数据进行发送,而A中可以发送成功,不明白为什么?是不是因为SOCKET类派生在A对话框下的原因?
我简述一下我的程序:

用MFC创建了主对话框A和它的非模态子对话框B,该程序与一ARM板进行基于SOCKET类的UDP通讯

在A、B的编辑框中输入数据,用SendTo命令发给ARM板,
ARM板的程序是evc程序,向对话框程序发送数据,
对话框A下,从socket派生了新类newsocket,其调用OnRneceive函数(只在A中调用)接收数据,并在对话框中显示出来

目前仍存在的问题是:

我将程序与UDP调试助手(网上下载的)进行通讯是成功的,即单独发送、单独接收以及UDP调试助手每1000ms向程序发送数据时,对话框程序仍能向UDP调试助手发送数据.
但是,当与ARM板通讯时,ARM板发来的数据(每100ms发一次数据)能够接收并显示,
这时向ARM板发送数据出现“xxxx内存,该内存不能为read”的错误提示,
而在发送(SendTo)处设断点调试(此时,ARM板仍每100ms发一次数据),发送是成功的

想问一下是什么原因,到底是发送出了问题,还是ARM板那边接收出了问题,还是对话框的发送与接收同时进行造成了内存区冲突(但与调试助手通讯却是成功的)?
展开
 我来答
minority172865
2011-07-31 · TA获得超过167个赞
知道答主
回答量:240
采纳率:0%
帮助的人:153万
展开全部
非模态子对话框!!!
这里要用多线程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-19
展开全部
第二个参数为所要发送的数据缓冲 也就是你要发送的内容
sendto(sockCLient, “hello”, 100, 0, (SOCKADDR *)&addrSrv, ilen);
可以直接写字符串也可以是一个变量
至于你想获得编辑框的内容
GetDlgItemText ()来获得
而如果想加终止符可以在末尾加"\r\n"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-04
展开全部
可能是内存的问题,也可能是程序的兼容性问题.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fenglren
2011-07-18 · 超过27用户采纳过TA的回答
知道答主
回答量:159
采纳率:0%
帮助的人:79.3万
展开全部
是不是阻塞了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式