win11接收udp组播
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win11接收udp组播相关的知识,希望对你有一定的参考价值。
参考技术A 使用recvfrom接收。Windows11,是由微软公司(Microsoft)开发的操作系统,应用于计算机和平板电脑等设备。需要使用recvfrom接收udp组播,是用户数据报协议,是OSI参考模型中一种无连接的传输层协议,是一种高效但不可靠传输。如何接收组播 UDP?
【中文标题】如何接收组播 UDP?【英文标题】:How to receive Multicast UDP? 【发布时间】:2012-11-19 17:35:19 【问题描述】:我正在使用 GCDAsyncUdpSocket,我可以发送多播或普通 UDP 数据包。我可以正常接收数据包,但无法从其他 iOS 设备接收多播数据包。
接收我使用:
- (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress: (NSData *)address withFilterContext:(id)filterContext
NSString *msg = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
NSString *host = nil;
uint16_t port = 0;
[GCDAsyncUdpSocket getHost:&host port:&port fromAddress:address];
if (msg)
NSLog(@"Message = %@, Adress = %@ %i",msg,host,port);
else
NSLog(@"Error converting received data into UTF-8 String");
【问题讨论】:
【参考方案1】:确保正确设置了多播套接字。这是我在多播项目中所做的:
- (void)setupSocket
udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
NSError *error = nil;
if (![udpSocket bindToPort:5555 error:&error])
NSLog(@"Error binding to port: %@", error);
return;
if(![udpSocket joinMulticastGroup:@"226.1.1.1" error:&error])
NSLog(@"Error connecting to multicast group: %@", error);
return;
if (![udpSocket beginReceiving:&error])
NSLog(@"Error receiving: %@", error);
return;
NSLog(@"Socket Ready");
【讨论】:
以上是关于win11接收udp组播的主要内容,如果未能解决你的问题,请参考以下文章