今天在调试一个基于多播的聊天程序,方法还是创建套接字(非锁定),设置套接字为可重用端口地址,将套接字绑定到指定到用户指定端口及默认接口,设置多址广播数据报传播范围(16),然后调用WSAJoinLeaf()函数加入多播组,最后选择异步通信模式为WSAAsyncSelect()函数(当然,用到了FD_READ的网络事件类型),并声明了消息值,以上是自己创建类中的Create()函数实现的,界面是用的单文档界面,在文档类中声明了这个自定义类,自定义类中所声明的消息值会投递到单文档界面的视图类中。  程序很简单,首先通过一个对话框输入一个多播组IP及本地PORT值,从而依上所述建立套接字,界面中有一个输入框用于输入聊天信息,并通过套接字发向多播组,很顺利,另一台机器上加入了同一个多播组的程序收到了聊天信息,各位兄弟知道,对于一个加入了多播组的计算机在向多播组发送数据的时候,调用同样会收到自己发送的数据,除非通过设置IP_MULTICAST_LOOP选项为FALSE,同样,我的程序也收到了自己发送的数据,到这里,一切正常!!!  问题出现在另一台机器上的程序将信息发送过来之后,程序正常接收到对方的信息并将其显示在视图上之后,再发送其它聊天信息,数据正常到达了对方的机器,奇怪的是数据却没有返回到本机,我之所以这样肯定,是因为我对FD_READ事件进行了监视,在没有收到其它任何数据之前,我发送出去的数据都会正常返回到本机,但接收过其它机器发过来的数据之后,就会发生上面介绍到的情况!!!  百思不得其解,还请各位兄弟帮忙!谢谢!!!