vc socket编程,sendto发给别人Ip的信息为什么自己recvfrom也收到了

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:29:55
我在用vc socket编程的时候出现了很郁闷的结果:

sockaddr_in addrTo;
addrTo.sin_addr.S_un.S_addr=htonl(inet_addr((const char *)&RequestIP));
addrTo.sin_family=AF_INET;
addrTo.sin_port=htons( RECVPORT );

err=sendto(m_sockBSend,"Reqshow",strlen("Reqshow")+1,0,(sockaddr*)&addrTo,sizeof(sockaddr));
其中RequestIP是别人的ip,为什么用sendto发送时,recvfrom的时候我也接到了来自自己的Reqshow这个消息
其中我对m_sockBSend设置成有广播性质:err=setsockopt(m_sockBSend,SOL_SOCKET,SO_BROADCAST,(char*)&bbroadcast,sizeof(bool)); 不知道对后面发送时用m_sockBSend指定了ip发送是有影响没,会不会因为它广播所以也能收到,指定ip不 起作用,请各位高手多多指教

广播时,一个段内的所有计算机都会收到,要不,就在你的程序中对消息进行处理!

设置了SO_BROADCAST属性,对方的ip就不要设置,而要用广播地址255.255.255.255,或者INADDR_ANY