怎样广播?最好使用mfc的
解决方案 »
- 为什么下面程序无法程序视窗?
- COM 接口中 VARINAT 参数的问题
- 急问:关于火灾图像识别和检测
- 一个关于编程的qq群20803969,欢迎大家来交流
- 如何把分割窗口随主窗口变化而按比例调整?
- 有人在没,关于把我的程序做成DLL拿到VB里去调用的问题``
- 关于华表组件开发的问题
- 简单问题,快快快快快
- AfxGetApp()->WriteProfileString("LINE\\DVR","Password","hhh");写进注册表啦!!!还是写Win.ini,为啥看我在这两项都看不到呀?
- 什么叫做在大存储模式下编译
- 我好心共享资源,不知道那个无耻的家伙在下载完删掉了,太恶心了
- 如何将EditBox将背景去除
#include <stdio.h >
#include <winsock.h >
int main(int argc, char* argv[]) {
WSADATA wsaData; //指向WinSocket信息结构的指针
SOCKET sockListener;
SOCKADDR_IN sin,saUdpServ;
BOOL fBroadcast = TRUE;
char sendBuff[1024];
int nSize;
int ncount=0;
if(WSAStartup(MAKEWORD( 1, 1 ), &wsaData )!=0)//进行WinSocket的初始化
{
printf( "Can't initiates windows socket!Program stop.\n ");//初始化失败返回-1
return -1;
}
sockListener=socket(PF_INET,SOCK_DGRAM,0);
setsockopt ( sockListener,SOL_SOCKET,SO_BROADCAST,
(CHAR *)&fBroadcast,sizeof ( BOOL ));
sin.sin_family = AF_INET;
sin.sin_port = htons(0);
sin.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind( sockListener, (SOCKADDR *)&sin, sizeof(sin))!=0)
{
printf( "Can't bind socket to local port!Program stop.\n ");//初始化失败返回-1
return -1;
}
saUdpServ.sin_family = AF_INET;
saUdpServ.sin_addr.s_addr = htonl ( INADDR_BROADCAST );
saUdpServ.sin_port = htons (7001);//发送用的端口,可以根据需要更改
nSize = sizeof ( SOCKADDR_IN );
while(1)
{
sprintf(sendBuff, "Message %d ",ncount++);
sendto ( sockListener,sendBuff,
lstrlen (sendBuff),
0,
(SOCKADDR *) &saUdpServ,
sizeof ( SOCKADDR_IN ));
printf( "%s\n ",sendBuff);
}
return 0;
}
///////////////////// //接收
#include <stdio.h >
#include <winsock.h >
#include <conio.h >
int main(int argc, char* argv[])
{
WSADATA wsaData; //指向WinSocket信息结构的指针
SOCKET sockListener;
SOCKADDR_IN sin,saClient;
char cRecvBuff[1024];
int nSize,nbSize;
int iAddrLen=sizeof(saClient);
if(WSAStartup(MAKEWORD( 1, 1 ), &wsaData )!=0)//进行WinSocket的初始化
{
printf( "Can't initiates windows socket!Program stop.\n ");//初始化失败返回-1
return -1;
}
sockListener=socket(AF_INET, SOCK_DGRAM,0);
sin.sin_family = AF_INET;
sin.sin_port = htons(7001);//发送端使用的发送端口,可以根据需要更改
sin.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind( sockListener, (SOCKADDR FAR *)&sin, sizeof(sin))!=0)
{
printf( "Can't bind socket to local port!Program stop.\n ");//初始化失败返回-1
return -1;
}
while(1)
{
nSize = sizeof ( SOCKADDR_IN );
if((nbSize=recvfrom (sockListener,cRecvBuff,1024,0,
(SOCKADDR FAR *) &saClient,&nSize))==SOCKET_ERROR)
{
printf( "Recive Error ");
break;
}
cRecvBuff[nbSize] = '\0';
printf( "%s\n ",cRecvBuff);
}
return 0;
}