iOS 7:通过wi-fi或对等wi-fi使用多点连接连接设备

iOS 7:通过wi-fi或对等wi-fi使用多点连接连接设备,ios,ios7,wifi,xcode5,multipeer-connectivity,Ios,Ios7,Wifi,Xcode5,Multipeer Connectivity,我正在尝试通过iOS 7中的Multipeer连接框架连接2台iOS 7设备。 我可以使用蓝牙连接它们。在代码中,我没有提到任何类似蓝牙的东西 Multipeer连接框架支持使用基础设施Wi-Fi网络、对等Wi-Fi和蓝牙个人区域网络发现附近iOS设备提供的服务,并随后通过发送基于消息的数据、流数据和文件等资源与这些服务通信 如果我关闭其中一个设备的蓝牙,它将停止工作 因为,蓝牙范围非常慢,我需要一个大面积的覆盖。那么,告诉我如何通过Wi-Fi或点对点Wi-Fi连接两台设备 代码:.h文件 @i

我正在尝试通过iOS 7中的Multipeer连接框架连接2台iOS 7设备。 我可以使用蓝牙连接它们。在代码中,我没有提到任何类似蓝牙的东西

Multipeer连接框架支持使用基础设施Wi-Fi网络、对等Wi-Fi和蓝牙个人区域网络发现附近iOS设备提供的服务,并随后通过发送基于消息的数据、流数据和文件等资源与这些服务通信

如果我关闭其中一个设备的蓝牙,它将停止工作

因为,蓝牙范围非常慢,我需要一个大面积的覆盖。那么,告诉我如何通过Wi-Fi或点对点Wi-Fi连接两台设备

代码:.h文件

@interface SessionManager : NSObject <MCSessionDelegate, MCAdvertiserAssistantDelegate, MCBrowserViewControllerDelegate>

// current peer
@property (nonatomic, readonly) MCPeerID *myPeer ;

// current session
@property (nonatomic, readonly) MCSession *session;

// current advertise
@property (nonatomic, readonly) MCAdvertiserAssistant *advertiser ;

// current browser
@property (nonatomic, readonly) MCBrowserViewController *browser ;

//To start advertising current device
- (void)start;

//To stop advertising current device
- (void)stop;

@end

感谢您的帮助。

MultipeerConnectivity提供了远离基础设施Wi-Fi、P2P和蓝牙的抽象。这意味着您的设备将以任何方式相互通信

如果您可以通过蓝牙连接两台设备,那么它们也可以通过基础设施wifi连接,前提是它们位于同一个局域网上,没有任何限制。因此,如果您在一家大型公司工作,您可能会因此遇到一些问题

MPC允许您与通过完全不同的传输方式连接的多个设备进行通信。因此,如果A、B和C都是可以使用您指定的UUID查找和连接的设备,A只打开蓝牙,B只打开蓝牙和wifi,C只打开wifi,那么A将自动能够从C接收消息,因为B负责完成环

所有这些功能都已经由MultipeerConnectivity提供


有关如何正确发现、连接和与对等方通信的演练,请查看wwdc视频“多对等方连接附近联网”

多对等方连接提供了远离基础设施Wi-Fi、P2P和蓝牙的抽象。这意味着您的设备将以任何方式相互通信

如果您可以通过蓝牙连接两台设备,那么它们也可以通过基础设施wifi连接,前提是它们位于同一个局域网上,没有任何限制。因此,如果您在一家大型公司工作,您可能会因此遇到一些问题

MPC允许您与通过完全不同的传输方式连接的多个设备进行通信。因此,如果A、B和C都是可以使用您指定的UUID查找和连接的设备,A只打开蓝牙,B只打开蓝牙和wifi,C只打开wifi,那么A将自动能够从C接收消息,因为B负责完成环

所有这些功能都已经由MultipeerConnectivity提供


有关如何正确发现、连接和与对等方通信的演练,请查看具有多个对等方连接的wwdc视频就近联网

选中的答案是错误的,因为该框架不在LAN上运行,而是较低级别,直接访问蓝牙或WI-FI。换句话说,您不需要使用相同的SSID在同一网络上,只需打开WI-FI即可。让这两个设备都从局域网上注销,比如关闭路由器和蓝牙,你会发现它们仍然可以连接。然而,从某种意义上说,你不能深入告诉框架直接使用蓝牙或WI-FI,这在一定程度上是正确的,因为苹果决定为我们自动化这一部分。

勾选的答案是错误的,因为框架不在局域网上运行,而是低一级,直接访问蓝牙或WI-FI。换句话说,您不需要使用相同的SSID在同一网络上,只需打开WI-FI即可。让这两个设备都从局域网上注销,比如关闭路由器和蓝牙,你会发现它们仍然可以连接。然而,从某种意义上讲,这是正确的,因为您无法深入了解框架以直接使用蓝牙或WI-FI,自从苹果公司决定为我们实现这一部分的自动化以来。

我已经观看了这段视频,并仅使用这段视频实现了代码……但我想使用wifi连接设备,以获得一个可观的连接范围。如果您观看了这段视频,那么您就可以通过wifi连接,只需确保设备位于同一局域网上,并且都启用了wifi即可。您可以关闭蓝牙以确保安全。要明确的是,据我所知,没有办法指定通过蓝牙或WiFi连接,它只是随意连接我已经观看了这段视频,并仅使用它实现了代码…但我想连接使用wifi的设备以获得一个可观的连接范围。如果您观看了这段视频,那么您已经可以通过wifi进行连接,只需确保这些设备位于同一局域网上,并且都启用了wifi。您可以关闭蓝牙,只是为了方便使用 乌尔。要明确的是,据我所知,没有办法指定通过蓝牙或WiFi进行连接,它只是根据自己的喜好进行连接
- (id)init
{
    self = [super init];

    if (self)
    {
        _myPeer = [[MCPeerID alloc] initWithDisplayName:[[UIDevice currentDevice] name]];

        _session = [[MCSession alloc] initWithPeer:_myPeer securityIdentity:nil encryptionPreference:MCEncryptionNone];
        _session.delegate = self;

        _advertiser = [[MCAdvertiserAssistant alloc] initWithServiceType:@"Connect" discoveryInfo:nil session:_session];
        _advertiser.delegate = self;

        _browser = [[MCBrowserViewController alloc] initWithServiceType:@"Connect" session:_session];
        _browser.delegate = self;
    }

    return self;
}

 - (void)start
 {
    [_advertiser start];
 }