首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac/iPhone上做网络的最有效的方式?

在Mac/iPhone上做网络的最有效的方式?
EN

Stack Overflow用户
提问于 2010-11-24 17:22:21
回答 2查看 2.2K关注 0票数 1

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

我希望有一个苹果提供的目标C包装,但我想听听一些想法,人们正在做的事情。如果你认为BSD套接字是正确的方法,那么也可以随意地插入一些想法:我真的很有兴趣找到“正确的方法”来做它。

让我们假设协议是自定义的协议,这样基于Cocoa的HTTP客户端类就不能满足我们的需求:)

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

然而,我目前的应用程序正是让我问这个问题的原因;我想知道人们通常做什么。当我在7-8年前认真使用VB6时,WinSock ActiveX控件所做的事情与使用BSD套接字所做的略有不同,不管它在引擎盖下做了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-24 22:01:28

对于网络来说,简单的答案是,

(1) ASIHttpRequest .注意到-这个QA是非常古老的。不幸的是,ASIHttpRequest只具有历史意义,不再可用。

(2) AsyncSocket

(3)当你开始的时候.GameKit (孩子可以使用它)

(4)使用Bonjour (两行代码)查找其他设备即可。

“苹果提供的目标-C包装”.AsyncSockets (最初是由神秘的达斯汀·J·沃斯编写)是如此的好,以至于苹果不会费心去写一个

AsyncSockets正是你想要的。它在30万个iFone应用程序中随处可见。它是在iFone上建立的网络。希望能帮上忙。

再次注意到-这个QA是非常古老的。现在您可以很容易地找到像AsyncSockets这样的“现代版本”软件。

顺便说一句,只要使用GK,绝对没有什么错--这是没有价值的。表演会很精彩。唯一的缺点是配对只需要很长的时间和GK。这是一个幼稚的混乱,为十岁的孩子学习编程。您将能够完成100倍更快的配对直接与AsyncSockets工作。

您可能更喜欢使用一些玩具GK代码,而您知道Bonjour和所有这些。

我建议大家的共识是,在比AsyncSocket更低的水平(即原始套接字)上工作是没有意义的。在那里没有更多的表现了。

注意-如果你是新的游戏套件/ iOS,一定要阅读这个关键的提示!

Client/Server GKSessions

希望能帮上忙。

票数 6
EN

Stack Overflow用户

发布于 2010-11-24 17:53:12

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

更新

我不认为有任何“简单的可可方式”为UDP内置。我记得这个讨论在可可开发清单上出现过好几次。茧异步套筒项目已被提到不同的地方。它声称:

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4269613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档