【问题标题】:Can I send packets if I know the destination's IP address and port number?如果我知道目的地的 IP 地址和端口号,我可以发送数据包吗?
【发布时间】:2011-05-04 02:32:54
【问题描述】:

我正在尝试创建一个 iPhone P2P 应用程序。如果我知道某人的 IP 地址和端口号(我将使用固定端口号),那么无论该人所属的网络和该人使用的 ISP 公司如何,我都可以向该人发送数据包吗?

基本上,我将设置一个集中式服务器,用户将他们的 IP 地址(我将使用固定端口号)更新到服务器。如果我想向某人发送一些东西,那么我可以从服务器获取该人的 IP 地址并创建一个套接字并通过套接字发送我想要的任何内容...

我想知道我是否必须考虑其他事情......

提前致谢

【问题讨论】:

    标签: iphone networking


    【解决方案1】:

    这里有一些你需要考虑的事情。

    1. 无论如何,此人所属的网络和 ISP 都不是问题(当然,除非发生了一些奇怪的数据包过滤等)
    2. 在您的情况下,服务器将是您自己的服务器(我们将其称为 serverX)。服务器不连接到客户端(iosA、iosB 等),它们连接到服务器。
    3. 这会带来:客户端的 ip 和端口对你来说并不重要(最有可能不是这个)
    4. 您的客户端可以从服务器提取信息(使用大量的库或技术,我建议使用 ASIHttpRequest)或者服务器可以通过通知服务推送

    【讨论】:

      【解决方案2】:

      是的,这就是互联网地址方案的全部理念。

      【讨论】:

        【解决方案3】:

        是的,你可以。但如果设备通过 Wi-Fi 连接,它可能位于防火墙后面。并且该防火墙可能需要端口转发。

        【讨论】:

        • 设置端口号以避免此问题的最佳方法是什么?
        【解决方案4】:

        我强烈推荐 Cocoa Async Socket。它是第三方开源项目。 https://github.com/robbiehanson/CocoaAsyncSocket

        网站上还有几个基本的示例项目可以帮助您入门。我在使用此框架方面拥有丰富的经验。

        您也可以查看:http://oreilly.com/iphone/excerpts/iphone-sdk/network-programming.html 这是标准的CFNetwork教程和说明。

        【讨论】:

          猜你喜欢
          • 2016-11-04
          • 1970-01-01
          • 2013-01-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多