社区
网络编程
帖子详情
如何设置,本机能收到套接字广播?
kathycxx
2007-03-27 02:46:09
如何设置,本机能收到套接字广播?
...全文
262
4
打赏
收藏
如何设置,本机能收到套接字广播?
如何设置,本机能收到套接字广播?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
goodmilk
2007-04-01
打赏
举报
回复
应该得知道发送方的发送端口,比如发送是255.255.255.255:4567。那么将本地SOCKET绑定到4567端口,调用recvfrom函数就可以收到了。
SOCKET s = ::socket (AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN sin;
sin.sin_family = AF_INET;
sin.sin_addr.S_un.S_addr = INADDR_ANY;
sin.sin_port = ::ntohs (4567);
::bin (s, (sockaddr *)&sin, sizeof(sin))
SOCKADDR_IN addrRemote;
int nLen = sizeof (addrRemote);
char sz[256];
while (TRUE) {
int nRet = ::recvfrom (s, sz, 256, 0, (sockaddr *)&addrRemote, &nLen);
if (nRet > 0) {
sz[nRet] = '\0';
printf (sz);
}
}
captain_x
2007-03-31
打赏
举报
回复
同上
但是如果想接收所有的包,如果是共享网络的话可以把网卡设置成混杂模式
songzijian
2007-03-27
打赏
举报
回复
??
接收广播不用特别设置吧
让发送方往某个广播地址发送数据就可以了吧
比如接受方的IP 192。168。0。2
发送方往192。168。0。255发送就可以了吧
dijkstar
2007-03-27
打赏
举报
回复
下面程序直接拿来就可以使用的,找两台计算机,按空格键发送!
#include <winsock2.h>
#include <ws2tcpip.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib,"ws2_32.lib") //包含必要的库
DWORD dwThreadId, dwThrdParam = 1;
HANDLE hThread;
WSADATA wsd;
struct sockaddr_in local,
remote,
from;
SOCKET sock,sockM;
TCHAR recvbuf[1000],
sendbuf[1000];
int len = sizeof(struct sockaddr_in),
optval,
ret;
DWORD i=0;
char ch;
DWORD WINAPI ThreadFunc( LPVOID lpParam ) ;
void main()
{
//初始化winsock2并创建套接字
WSAStartup(MAKEWORD(2,2),&wsd) ;
sock =WSASocket(AF_INET, SOCK_DGRAM,0,NULL,0,
WSA_FLAG_MULTIPOINT_C_LEAF|WSA_FLAG_MULTIPOINT_D_LEAF|WSA_FLAG_OVERLAPPED);
//绑定本地地址
local.sin_family = AF_INET;
local.sin_port = htons(25000);
local.sin_addr.s_addr = INADDR_ANY; //或者:inet_addr("192.168.0.100");
bind(sock,(struct sockaddr *)&local,sizeof(local));
//设置一个广播组
remote.sin_family = AF_INET;
remote.sin_port = htons(25000);
remote.sin_addr.s_addr =inet_addr("234.5.6.7");
//设置TTL
optval = 8;
setsockopt(sock,IPPROTO_IP,IP_MULTICAST_TTL,(char *)&optval,sizeof(int));
//关闭LOOPBACK,否则发送时自己也能收到
optval = 0;
setsockopt(sock,IPPROTO_IP,IP_MULTICAST_LOOP,(char *)&optval,sizeof(int));
//将创建的套接字加入到广播组
sockM = WSAJoinLeaf(sock,(SOCKADDR *)&remote,sizeof(remote),NULL,NULL,NULL,NULL,JL_BOTH);
//创建起一个线程,阻塞用来接收数据
hThread = CreateThread(
NULL, // no security attributes
0, // use default stack size
ThreadFunc, // thread function
&dwThrdParam, // argument to thread function
0, // use default creation flags 如果该参数为0,线程就会立即开始执行
&dwThreadId); // returns the thread identifier
//进入主线程
printf("Press space key to send,press ESC or 'q' to exit!\n");
while(1)
{
if(kbhit())
{
ch = getch();
//按‘q’键或ESC退出
if(ch == 'q' || ch == 27) break;
//按空格键发送
if(ch == ' ')
{
sprintf(sendbuf,"helloworld:%d\n",i++);
printf("string:%d send:\t%s\n",i,sendbuf);
sendto(sock,(char *)sendbuf,20,0,(struct sockaddr *)&remote,sizeof(remote));
}
}
}
closesocket(sock);
WSACleanup();
}
//线程函数
DWORD WINAPI ThreadFunc( LPVOID lpParam )
{
while(1)
{
ret = recvfrom(sock,recvbuf,20,0,(struct sockaddr *)&from,&len);
printf("%s from %s\n",recvbuf,inet_ntoa(from.sin_addr));
}
}
虚拟服务器接收不到消息,主机通过wifi上网无法
收到
虚拟机的
广播
或多播消息?...
/*********************************************************************** Compiler: GCC* Last Update:Mon 14 May 2012 06:48:56 PM CST* File Name: myClientMulticast2.c* Description:********************...
Android
广播
机制
广播
类型 Android中,
广播
主要分为两种类型:标准
广播
和有序
广播
, 标准
广播
是一种完全一步执行的
广播
,在
广播
发出之后,所有的
广播
接收器几乎都会在同一时刻接
收到
这条
广播
消息,因此他们之间没有任何先后顺序可言.这种
广播
效率比较高,但是不能被截断. 有序
广播
是一种同步执行的
广播
,在
广播
发出之后,同一时刻只有一个
广播
接收器能够
收到
这条
广播
消息,当这个
广播
接收器中的逻辑执行完毕后,
广播
才会继续传递,所以
UDP
广播
与多播
UDP
广播
与多播 作者:legend 使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否
收到
该报文,客户端根本不用管。 通常我们讨论的udp的程序都是一对一的单播程序。本章将讨论一对多的服务:
广播
(broadcast)、多播(m
组播通信
摘要: 本文试图成为学习TCP/IP网络组播技术的入门材料。文中介绍了组播通信的概念及原理,以及用于组播应用编程的LinuxAPI的详细资料。为了使读者更加完整的了解Linux组播的整体概念,文中对实现该技术的核心函数也做了介绍。在文章的最后给出了一个简单的C语言
套接字
编程例子,说明如何创建组播应用程序。 一、导言 在网络中,主机间可以用三种不同的地址进行通信:
UDP
广播
与多播的实现
今天我这篇文章是基于这两篇文章修改了下: http://blog.csdn.net/chenpeng19910926/article/details/51782821 http://blog.csdn.net/chenhanzhun/article/details/42006385 概述 主机可采用的通信方式有如下三种: 单播:单台主机与单台主机之间的数据通信;
广播
:单台...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章