MFC中异步套接字WSASocket的使用,该怎么解决

MFC中异步套接字WSASocket的使用
    现在假设局域网中有3台电脑A,B,C,电脑A实时发送UDP数据包到电脑B,电脑B接收UDP数据包后再实时转发给电脑C,那么,电脑B中的MFC代码实现过程大致是这样的:
    首先,创建一个异步套接字m_socketReceive,绑定电脑A的IP和端口号,自定义接收数据消息VM_RECVDATAMSG,注册数据接收事件,在事件的消息响应函数中通过PostMessage(WM_SENDDATAMSG)实现把接收的消息转发,其消息响应函数为OnSendData();
    然后,再创建一个异步套接字m_socketSend,绑定电脑B的IP和端口号,但是不调用WSAAsyncSelect函数请求消息通知,只是在上面的OnSendData()函数中调用m_socketSend的WSASendTo()函数发送数据;
请教大神们:这样能实现异步接收和转发吗?非阻塞的方式,电脑B是要实时刷新数据的,会不会出现卡死的现象啊?向各位大神求救,小弟现在对MFC的Socket了解的不是很深,而且又没有实时数据测试的条件,希望大神帮助啊!
------解决思路----------------------
你将通信和数据处理放在不同的线程中,它一定是异步、非阻塞的。
你写的大致过程看不太明白,但你自己可通过MSDN搞清应用。
看设计思路是使用UDP,但你并未考虑数据安全,因为UDP发送不保证能安全接收,从应用稳定性看应该使用TCP,它才能保证你的数据正确,且同样是异步、非阻塞。
------解决思路----------------------
"然后,再创建一个异步套接字m_socketSend,绑定电脑B的IP和端口号,但是不调用WSAAsyncSelect函数请求消息通知,只是在上面的OnSendData()函数中调用m_socketSend的WSASendTo()函数发送数据"  
          个人觉得这样会有问题。不如在B电脑上开一块缓冲区,m_socketReceive只管从A接收数据,写到缓冲区。m_socketSend只管检查缓冲区是否有数据,然后取数据发给C。但是这样要控制好缓冲区的同步,防止又写又读出现混乱。楼下怎么看?
------解决思路----------------------
http://www.cnblogs.com/EdmundDwyane/p/3218838.htmlhttp://www.cnblogs.com/EdmundDwyane/p/3278641.htmlhttp://www.cnblogs.com/EdmundDwyane/p/3248297.html
看明白这三篇文章,套接字你就都懂了,含demo 
------解决思路----------------------
引用:
Quote: 引用:

http://www.cnblogs.com/EdmundDwyane/p/3218838.htmlhttp://www.cnblogs.com/EdmundDwyane/p/3278641.htmlhttp://www.cnblogs.com/EdmundDwyane/p/3248297.html
看明白这三篇文章,套接字你就都懂了,含demo 

多谢大神,这些对我的确有用,我得仔细好好看看,,其实,我现在主要要做的就是把以前代码串口接收(串口控件)和HDLC接收(DLL)的方式全部改为UDP接收,就是担心改之后在同步异步,阻塞非阻塞尤其是对缓冲区的处理方面出现问题...

WSAAsyncSelect就是异步的方式,你就可以处理数据。
------解决思路----------------------
B就一个中转服务器,不需要那么复杂,B直接阻塞接收就行,收到消息后,直接sendto到C就行了。你这种发送消息PostMessage属于阻塞调用,没有必要使用。
------解决思路----------------------
引用:
Quote: 引用:

B就一个中转服务器,不需要那么复杂,B直接阻塞接收就行,收到消息后,直接sendto到C就行了。你这种发送消息PostMessage属于阻塞调用,没有必要使用。

目前,B除了中转之外,还需要处理显示接收的数据的(通过PostMessage做的);sendto到C这步,缓冲区收到数据,就把其转发,如果采用同步的话,那么万一C没有接收,会不会是卡在那儿,“时间都停止了”,或者影响对接收数据的处理显示;假如有多个C,这种做法是不是性能很差?给参考的还有一种采用Message结构体的做法,不过现在还没看懂。我先改一下不用PostMessage而是直接转发的试试看,估计周末又没了!
PostMessage属于阻塞调用”,这句话,你是不是搞错了,PostMessage属于非阻塞的吧,SendMessage属于阻塞的

哦,对的,好久没搞VC的编程了。这样的话,你就还需要注意下线程同步的问题了。