CSocket m;
BOOL fBroadcast = TRUE;
m.SetSockOpt(SO_BROADCAST,(CHAR *)&fBroadcast,sizeof(BOOL),SOL_SOCKET);
m.Create(2330,SOCK_DGRAM);
m.SendTo( p,sizeof(yuan1),3550,"255.255.255.255");在我的程序中用上述代码,不能实现广播,请问是怎么回事?如何修改?不胜感激!
BOOL fBroadcast = TRUE;
m.SetSockOpt(SO_BROADCAST,(CHAR *)&fBroadcast,sizeof(BOOL),SOL_SOCKET);
m.Create(2330,SOCK_DGRAM);
m.SendTo( p,sizeof(yuan1),3550,"255.255.255.255");在我的程序中用上述代码,不能实现广播,请问是怎么回事?如何修改?不胜感激!
解决方案 »
- 几年的工作生涯到底以为着哪一些不同
- socket程序,想实现客户端循环向服务器发送的功能,可是只发送了一次,为什么呢?
- delete AfxBeginThread返回值
- 各位高手``小弟遇到个问题``虽然很幼稚``但是看在小弟是初学者``请各位高手帮帮忙``
- 解析xml文件的问题
- 如何释放CStringArray里面的对象?
- 送分的问题
- 谁有定时执行的类,例如每星期,每天等的固定时间?
- 请问哪位仁兄有BCGControlbar 5.8或者以上版本
- 我想把它显示在一个图片框里,求大家帮忙啊
- 如何在void mysocket::OnReceive(int nErrorCode)函数中判断是TCP还是UDP从而触发不同的函数呢?是否有其它办法?
- C++ Test的使用???
#include <afx.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#pragma comment(lib, "WS2_32.lib")//常量定义
#define BUFSIZE 1024
#define TTL_VALUE 255
#define TIME_OUT 2
#define TEST_ADDR "234.5.6.7"
#define TEST_PORT 9200
#define LOOPMAX 10000int main(int argc, char* argv[])
{
struct sockaddr_in stto;
char achout[BUFSIZE]; //要发送的信息
WSADATA stwsa;
SOCKET s;
int i, itmp, iret, addr_size;
struct AlarmRecData{
time_t AlarmTime; // 报警发生时间
// UINT VarID; // 报警变量的ID
UINT AlarmType; // 1->AI;2->DI
// UINT AlarmType_; // HH,H,L,LL,OneToZero,ZeroToOne 对应1,2,3,4,5,6
UINT AlarmID; // 报警ID
// CString VarName; // 报警变量名
//CString AlarmInfo; // 报警信息
float CurValue;
};
AlarmRecData _SendData;
_SendData.AlarmID = 2;
_SendData.CurValue = 3.5;
_SendData.AlarmType = 1;
_SendData.AlarmTime = (CTime::GetCurrentTime()).GetTime();
memcpy(achout,&_SendData,sizeof(AlarmRecData)); itmp = WSAStartup(MAKEWORD(2, 2), &stwsa);
if (itmp)
{
printf("Call WSAStartup failed. Return value: %d\t\n", itmp);
exit(1);
}
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s == INVALID_SOCKET)
{
printf("Call socket failed. Error number: %d\t\n", WSAGetLastError());
exit(1);
}
//组播组的地址信息
stto.sin_family = AF_INET;
stto.sin_addr.s_addr = inet_addr(TEST_ADDR);
stto.sin_port = htons(TEST_PORT);
//开始发送并接收信息
addr_size = sizeof(struct sockaddr_in);
for (i = 0; i < LOOPMAX; i++)
{
printf("Input the message: ");
// scanf("%s", achout);
printf("Now sending to multicast group, address: %s\n", TEST_ADDR);
iret = sendto(s, achout, sizeof(achout), 0, (struct sockaddr *)&stto, addr_size);
if (iret == SOCKET_ERROR)
{
printf("Call sendto failed. Error number: %d\t\n", WSAGetLastError());
exit(1);
}
}closesocket(s);
WSACleanup();system("PAUSE");
return 0;
}
在搜索中键入
MsocUdp.exe 就找到了!