如何使用本地网络上的主机名称连接TCP套接字
问题描述:
我试图使用计算机名称从iPad连接到Windows XP计算机上的TCP套接字。如何使用本地网络上的主机名称连接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"
for VB 和 MySocket->Connect("MyHost", 4097);
for C++
如何在iPad上使用Xcode做类似的事情?
答
您将需要iOS的SMB客户端库。这里有一个地方开始:
http://38leinad.wordpress.com/2011/03/23/windows-filesharing-library-for-ios/
答
如果它与直接的IP与主机名不确实“MYHOST” 这很可能意味着“MYHOST”是没有得到解决(一个IP)在iPad上。 例如:在XP机器上有一个名为hosts的文件(通常为c:\windows\system32\drivers\etc\hosts
) - 其中像MyHost这样的主机名可以让它定义IP。
一条线“192.168.0.4 MyHos
吨”会做到这一点。
看来你不能编辑主机在非越狱的iPad的文件:Can I edit an iPad's host file?
但here你可以找到解决的办法。
我下载了iOS的Tango SMB客户端库,并找到函数address_for_host()。它使用了不赞成使用的函数gethostbyname()。\ n当我用“10.0.0.4”调用它时,它返回0x4000000a,当我用“MyHost”调用它时,它返回INADDR_NONE(0xffffffff)还有其他建议吗?谢谢 – schaz