- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 GKSession 连接两台设备,其中一台作为服务器,另一台作为客户端。使用此配置我无法使用 GKPeerPickerController。
我在连接两个设备时遇到问题:
在接口(interface)文件中我有
GKSessionDelegate
GKSession *session;
在实现中,我使用以下代码启动服务器:
session = [[GKSession alloc] initWithSessionID:@"iFood" displayName:nil sessionMode:GKSessionModeClient];
session.delegate = self;
session.available = YES;
客户端开始使用此代码:
session = [[GKSession alloc] initWithSessionID:@"iFood" displayName:nil sessionMode:GKSessionModeServer];
session.delegate = self;
session.available = YES;
如何强制使用蓝牙而不是 WiFi?
我还实现了这些调用:
-(void)session:(GKSession *)session didReceiveConnectionRequestFromPeer:(NSString *)peerID {
NSLog(@"Someone is trying to connect");
}
- (BOOL)acceptConnectionFromPeer:(NSString *)peerID error:(NSError **)error {
NSLog(@"acceptConnectionFromPeer");
}
当我开始时,我将其输入调试器:
Listening on port 50775
2010-02-19 14:55:02.547 iFood[3009:5103] handleEvents started (2)
当其他设备开始查找时,我得到以下信息:
~ DNSServiceBrowse callback: Ref=187f70, Flags=2, IFIndex=2 (name=[en0]), ErrorType=0 name=00eGs1R1A..Only by Audi regtype=_2c3mugr67ej6j7._udp. domain=local.
~ DNSServiceQueryRecord callback: Ref=17bd40, Flags=2, IFIndex=2 (name=[en0]), ErrorType=0 fullname=00eGs1R1A\.\.Only\032by\032Audi._2c3mugr67ej6j7._udp.local. rrtype=16 rrclass=1 rdlen=18 ttl=4500
** peer 1527211048: oldbusy=0, newbusy=0
~ DNSServiceBrowse callback: Ref=187f70, Flags=2, IFIndex=-3 (name=[]), ErrorType=0 name=00eGs1R1A..Only by Audi regtype=_2c3mugr67ej6j7._udp. domain=local.
GKPeer[186960] 1527211048 service count old=1 new=2
~ DNSServiceQueryRecord callback: Ref=17bd40, Flags=2, IFIndex=-3 (name=[]), ErrorType=0 fullname=00egs1r1a\.\.only\032by\032audi._2c3mugr67ej6j7._udp.local. rrtype=16 rrclass=1 rdlen=18 ttl=7200
** peer 1527211048: oldbusy=0, newbusy=0
~ DNSServiceBrowse callback: Ref=187f70, Flags=2, IFIndex=-3 (name=[]), ErrorType=0 name=00TF5kc1A..Only by Audi regtype=_2c3mugr67ej6j7._udp. domain=local.
~ DNSServiceQueryRecord callback: Ref=188320, Flags=2, IFIndex=-3 (name=[]), ErrorType=0 fullname=00tf5kc1a\.\.only\032by\032audi._2c3mugr67ej6j7._udp.local. rrtype=16 rrclass=1 rdlen=18 ttl=7200
** peer 1723356125: oldbusy=0, newbusy=0
~ DNSServiceQueryRecord callback: Ref=188320, Flags=2, IFIndex=2 (name=[en0]), ErrorType=0 fullname=00TF5kc1A\.\.Only\032by\032Audi._2c3mugr67ej6j7._udp.local. rrtype=16 rrclass=1 rdlen=18 ttl=4500
** peer 1723356125: oldbusy=0, newbusy=0
我在这里缺少什么?
我确信两台设备都启用了蓝牙并连接到同一个 WiFi。
Cảm ơn
r。
1 Câu trả lời
我认为您错过了接受与客户端的连接。收到“didReceiveConnectionRequestFromPeer”回调后,您需要接受与客户端的连接,如下所示:
-(void)session:(GKSession *)session didReceiveConnectionRequestFromPeer:(NSString *)peerID {
NSLog(@"Someone is trying to connect");
NSError *error;
[gkSession acceptConnectionFromPeer:peerID error:&error];
if(error)
NSLog(@"Error on accept connection with peer: ", error);
}
此后,您将在此处收到“GKPeerStateConnected”:
- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state{}
希望这对您有帮助。
关于iphone - GameKit:GKSession 手册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296856/
如果我有两个 iOS 设备,都在同一个 WiFi 网络上并且都打开了蓝牙,并且我使用 GameKit(特别是 GKSession)手动设置它们之间的通信 channel (不使用 GKPeerPick
我希望 session 中的一个对等方将字符串数组发送给另一个已连接的对等方。有没有一种方法可以将这样的数组转换为NSData或我需要一个接一个地发送字符串? 非常感谢。 最佳答案 NSArray对象
我在 GameKit 上工作了一段时间。几乎一切正常。我对 session:peer:didChangeState: 有一个大问题恢复后未调用方法。 在 Apple 示例 GKRocket 中,如果应
我阅读了技术说明 TN2277当应用程序进入后台时,关闭各种网络套接字非常重要。这很可能还包括 GKSession。 他们说进入后台时需要一个过期处理程序,并且如果必须异步调用网络代码(如果必须向其他
我有许多使用 GameKit 通过 wifi 连接的设备。当对等方(客户端)接收数据时,我会弹出一个简单的 UIAlertView 。除了发送者(服务器)之外的所有其他人在发送数据时都会显示此警报 V
我当前的sessionMode是GKSessionModeServer。如果我在客户端,我会执行以下操作: [mySession sendDataToAllPeers:packet withDat
大家好,我正在使用以下代码来识别蓝牙上的可用设备。 _session = [[GKSession alloc]initWithSessionID:sessionid displayName:sessi
我们可以使用 GKSession 和 GKPeerPickerController 仅通过蓝牙连接 iPodtouch 或 iPhone,对吗? ,或者我们可以连接其他蓝牙设备吗? 最佳答案 使用 G
Tôi muốn sử dụng GKSession để kết nối hai thiết bị, một là máy chủ và một là máy khách. Với cấu hình này tôi không thể sử dụng GKPeerPickerController. Tôi gặp sự cố khi kết nối hai thiết bị: Chỉ sử dụng Bluetooth: Không thể
为了读取对等方的新显示名称,我需要终止并更新GKSession。将其设置为nil并重新启动它不起作用。在下面的代码中,未调用for循环中的NSLog来显示可用的对等节点(没有错误消息): -(IBAc
我在通过 GKSession 发送整数数组时遇到问题。 我是这样做的: 发送。 -(void)sendData { NSMutableArray *myArray = [[NSMutableA
我有一个典型的 GKSessionModeServer/GKSessionModeClient 设置。 当服务器使用 denyConnectionFromPeer: 拒绝客户端连接尝试时,客户端的 s
我可以同时实现两个GKSession,一个作为客户端,另一个作为服务器吗?使用 WiFi 和蓝牙实现此连接是否存在问题或任何限制?谢谢! 最佳答案 您可以使用 GKSessionModePeer 来执
GKPeerPickerController 是否会显示蓝牙设备的对等 ID,该设备属于暂停模式下的某个特定应用程序的一部分 场景 我有一个具有特定 session ID 的 iOS 蓝牙应用程序 X
我在两个应用程序之间有一个 GKSession。一个是服务器,另一个是客户端。服务器使客户端应用程序使用 urlscheme 命令启动另一个应用程序。 我希望发生的是,当客户端应用程序关闭时, ses
我制作了一个简单的游戏,它使用 GameKit 中的 GKSession 连接到其他点。设置起来很容易,但我发现了一些问题: 延迟变化很大。有时消息会立即到达其他设备。有时,向其他对等方发送数据的延迟
如何在GKSession开始搜索时停止下面的代码? BTM: posting notification BluetoothAvailabilityChangedNotification 2011-0
我有一个应用程序,如果用户选择设备作为服务器,它会在服务器模式下创建一个 GKSession,如果它选择 cient,它会在客户端模式下创建一个 GKSession。 目前发生的事情是服务器正在发送数
我正在开发一个 iOS 应用程序,该应用程序允许用户在本地与其他设备共享 PDF。当应用程序启动时,设备主动成为搜索正在广播文件的服务器的客户端。当客户端看到服务器时,它会在其选项卡中添加一个角标(B
我知道系统可以在应用程序挂起时关闭 Bonjour 套接字。但是,当我的应用程序在后台运行时,系统会允许我只发现其他设备而不为它们创建套接字,并可能将这些设备存储在列表或类似的东西中吗? 最佳答案 使
Tôi là một lập trình viên xuất sắc, rất giỏi!