- 论坛徽章:
- 0
|
/*以下程序Dev-C++通过,按照道理应该是开启第一个程序显示 一句
在开启第一个程序 应该第一个上面显示2句 后开启的显示1句,也就是说后开的实例显示的消息比前一少一句,可是结果是只有最先的能正确显示,后开的都没有收到消息,,是什么原因啊?共用一个端口导致消息丢失?还是其他原因?(自己发的消息自己可以收到的)*/
#include<stdio.h>;
#include<winsock.h>;
#include<iostream>;
using namespace std;
int main()
{
WSADATA data;
SOCKET s;
struct sockaddr_in addr,to,from;
BOOL op=TRUE;
int len=sizeof (struct sockaddr);
char buff[1024];
WSAStartup(0x101,&data);
addr.sin_port=3333;
addr.sin_family=AF_INET;
addr.sin_addr.s_addr=INADDR_ANY;
to.sin_addr.s_addr=INADDR_BROADCAST;
to.sin_family=AF_INET;
to.sin_port=3333;
memset(buff,0,1024);
s=socket(AF_INET,SOCK_DGRAM,0);
bind(s,(struct sockaddr*)&addr,16);
setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char FAR*)&op,sizeof op);
sendto(s,"实验成功吗?",11,0,(struct sockaddr*)&to,16);
while(1)
{
recvfrom(s,buff,1024,0,(struct sockaddr*)&from,&len);
cout<<buff;
memset(buff,0,1024);
}
WSACleanup();
getchar();
return 0;
} |
|