Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mac/iPhone上联网最有效的方法是什么?_Iphone_Cocoa_Cocoa Touch_Macos_Networking - Fatal编程技术网

在Mac/iPhone上联网最有效的方法是什么?

在Mac/iPhone上联网最有效的方法是什么?,iphone,cocoa,cocoa-touch,macos,networking,Iphone,Cocoa,Cocoa Touch,Macos,Networking,在Mac和iPhone上建立TCP连接或发送UDP数据报最有效的方法是什么(即努力与可读性和可维护性的最佳比率)?我非常熟悉经典的BSD套接字,但我现在的目标不是可移植性;我只是想尽快完成一个小项目 我很想有一个苹果提供的Objective-C包装器,但我想听听人们的一些想法。如果你认为BSD套接字是一条出路,那么也可以随意插入一些想法:我真的只是对找到“正确的方法”感兴趣 让我们假设该协议是自定义协议,因此基于Cocoa的HTTP客户端类无法满足我们的需求:) 我目前的目标是通过UDP在网络

在Mac和iPhone上建立TCP连接或发送UDP数据报最有效的方法是什么(即努力与可读性和可维护性的最佳比率)?我非常熟悉经典的BSD套接字,但我现在的目标不是可移植性;我只是想尽快完成一个小项目

我很想有一个苹果提供的Objective-C包装器,但我想听听人们的一些想法。如果你认为BSD套接字是一条出路,那么也可以随意插入一些想法:我真的只是对找到“正确的方法”感兴趣

让我们假设该协议是自定义协议,因此基于Cocoa的HTTP客户端类无法满足我们的需求:)


我目前的目标是通过UDP在网络上传输设备状态(如加速计),同时通过TCP保持信令和传递保证事件(如按下按钮)连接。桌面应用程序将显示此状态


然而,我目前的申请正是我提出这个问题的原因;我想知道人们通常做什么。大约7-8年前,当我上一次认真使用VB6时,WinSock ActiveX控件所做的事情与使用BSD套接字所做的事情略有不同,无论它在引擎盖下做了什么。

您的问题无法得到任何详细的回答,因为您没有描述您想要做什么。我能给出的最好答案是阅读和的介绍性网络指南

更新

我不认为有任何“简单可可方式”内置UDP。我记得这个讨论已经在cocoa dev列表上出现过好几次。这个项目在很多地方都被提到过。它声称:

AsyncUdpSocket是一个UDP/IP套接字 包装的网络库 CFSocket。它的工作原理几乎完全一样 TCP版本,但设计为 专门针对UDP。这包括 排队非阻塞发送/接收 操作、完全代表支持、, 运行基于循环的自包含类, 以及对IPv4和IPv6的支持


你的问题无法得到任何细节的回答,因为你没有描述你想做什么。我能给出的最好答案是阅读和的介绍性网络指南

更新

我不认为有任何“简单可可方式”内置UDP。我记得这个讨论已经在cocoa dev列表上出现过好几次。这个项目在很多地方都被提到过。它声称:

AsyncUdpSocket是一个UDP/IP套接字 包装的网络库 CFSocket。它的工作原理几乎完全一样 TCP版本,但设计为 专门针对UDP。这包括 排队非阻塞发送/接收 操作、完全代表支持、, 运行基于循环的自包含类, 以及对IPv4和IPv6的支持


对于网络,简单的答案是

(1) ASITPPREQUEST注意-此QA非常古老。不幸的是,AsiTRequest仅具有历史意义,不再可用

(2) 异步套接字

(3) 当你开始的时候。。。游戏套件(儿童可以使用)

(4) 只需使用Bonjour(两行代码)来查找其他设备

“苹果提供的Objective-C包装”。。。AsyncSockets(最初由神秘的Dustin J.Voss编写)是如此之好,以至于苹果根本不会费心去编写一个

AsyncSockets正是您所追求的。它在300000 iOne应用程序中随处可见。它“是”在iPhone上联网。希望能有帮助

再次注意-此QA非常古老。您现在可以很容易地找到类似AsyncSockets的“现代版本”软件

顺便说一句,仅仅使用GK绝对没有什么错,这是不值得的。。表演可以是壮观的。唯一的缺点是与GK配对需要很长时间。对于十岁的孩子来说,学习编程是一种幼稚的混乱。直接使用AsyncSockets,您将能够以100倍的速度进行配对

你可能更喜欢使用一些玩具GK代码,而你明白了“你好”和所有这些

我建议大家一致认为,在比AsyncSocket更低的级别(即原始套接字)上工作是没有意义的。。那里没有更多的表演了

注意-如果您是gamekit/iOS新手,请务必阅读此关键提示


希望有帮助。

对于网络,简单的答案是

(1) ASITPPREQUEST注意-此QA非常古老。不幸的是,AsiTRequest仅具有历史意义,不再可用

(2) 异步套接字

(3) 当你开始的时候。。。游戏套件(儿童可以使用)

(4) 只需使用Bonjour(两行代码)来查找其他设备

“苹果提供的Objective-C包装”。。。AsyncSockets(最初由神秘的Dustin J.Voss编写)是如此之好,以至于苹果根本不会费心去编写一个

AsyncSockets正是您所追求的。它在300000 iOne应用程序中随处可见。它“是”在iPhone上联网。希望能有帮助

再次注意-此QA非常古老。您现在可以很容易地找到类似AsyncSockets的“现代版本”软件

顺便说一句,仅仅使用GK绝对没有什么错,这是不值得的。。表演可以是壮观的。唯一的缺点是与GK配对需要很长时间。对于十岁的孩子来说,学习编程是一种幼稚的混乱。直接使用AsyncSockets,您将能够以100倍的速度进行配对

你可能更喜欢使用一些玩具GK代码,而你明白了“你好”和所有这些

我建议大家一致认为,在比AsyncSocket更低的级别(即原始套接字)上工作是没有意义的。。那里没有更多的表演了

没有