Xcode 如何在本地网络上使用主机名连接TCP套接字
我正在尝试使用iPad上的计算机名连接到Windows XP机器上的TCP套接字 我试过使用:Xcode 如何在本地网络上使用主机名连接TCP套接字,xcode,objective-c++,tcpclient,Xcode,Objective C++,Tcpclient,我正在尝试使用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机器通过以下方式
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++
如何使用Xcode在iPad上执行类似操作?您需要一个用于iOS的SMB客户端库。这里是一个开始:
如果它与直接IP一起工作,而不与主机名“MyHost”一起工作
这很可能意味着“MyHost”在iPad上没有得到解析(IP)。
例如:有一个名为hosts的文件(通常c:\windows\system32\drivers\etc\hosts
)
在XP机器上-像MyHost这样的主机名可以定义其IP
一行“192.168.0.4myhos
t”就可以做到这一点
似乎您无法在非越狱iPad上编辑主机文件:
但是您可以找到解决方法。我下载了用于iOS的Tango SMB客户端库,并找到了函数address_for_host()。它使用了不推荐使用的函数gethostbyname()。\n当我用“10.0.0.4”调用它时,它返回0x4000000a,当我用“MyHost”调用它时,它返回INADDR\u NONE(0xffffffff)还有其他建议吗?谢谢