【问题标题】:How to connect a TCP socket using a host name on a local network如何使用本地网络上的主机名连接 TCP 套接字
【发布时间】:2012-03-27 18:37:42
【问题描述】:

我正在尝试使用 iPad 上的计算机名称连接到 Windows XP 计算机上的 TCP 套接字。

我尝试过使用:

getaddrinfo(hostName, 4097, &hints, &res0);

hostName = "MyHost" 时失败,hostName = "192.168.0.4" 时成功

我尝试过使用 AsynchSockets,结果相同:

[mySocket connectToHost:hostName onPort:4097 error:nil];

XP 机器可以很好地连接使用: Winsock.RemoteHost = "MyHost" 用于 VB 和 MySocket->Connect("MyHost", 4097); 用于 C++

如何在 iPad 上使用 Xcode 做类似的事情?

【问题讨论】:

    标签: xcode objective-c++ tcpclient


    【解决方案1】:

    您将需要一个适用于 iOS 的 SMB 客户端库。这是一个开始的地方:

    http://38leinad.wordpress.com/2011/03/23/windows-filesharing-library-for-ios/

    【讨论】:

    • 我下载了适用于 iOS 的 Tango SMB 客户端库,并找到了函数 address_for_host()。它使用已弃用的函数 gethostbyname()。\n 当我用“10.0.0.4”调用它时,它返回 0x4000000a,当我用“MyHost”调用它时,它返回 INADDR_NONE (0xffffffff) 还有其他建议吗?谢谢
    【解决方案2】:

    如果它与直接 IP 一起使用并且不与主机名“MyHost”一起使用 这很可能意味着“MyHost”没有在 iPad 上得到解析(到 IP)。 例如:有一个名为hosts的文件(通常是c:\windows\system32\drivers\etc\hosts) 在 XP 机器上 - 像 MyHost 这样的主机名可以定义它的 IP。

    一行“192.168.0.4 MyHost”就可以做到这一点。

    您似乎无法在未越狱的 iPad 上编辑 hosts 文件:Can I edit an iPad's host file?

    但是here 你可以找到解决办法。

    【讨论】:

      猜你喜欢
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 2021-06-24
      • 2013-01-30
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多