我正在尝试编写一个程序,它使用套接字通过网络连接自身的其他实例.由于最终我还想编写Windows版本,我目前正在OS X端使用BSD套接字,以便我可以确保它与(最终)Windows版本兼容.
到目前为止,我能够使这个工作的唯一方法是在创建服务器套接字时指定我的实际IP地址.如果我改用127.0.0.1,那么我只能从我的本地机器连接.
虽然这在理论上很好,但问题是我如何知道使用哪个IP地址?我不知道如何通过Cocoa获取当前机器的IP地址,即使我可以,如果有多个有效的IP地址(例如机场和以太网连接),该怎么办.我怎么知道使用哪一个?我可以问用户,但这似乎不是他们可以/应该知道的事情.
如果需要,我可以提供我的客户端和服务器连接代码,但是考虑到我能够从远程计算机建立连接,我认为问题不在我的代码中.
感谢您的时间.:)
使用0.0.0.0作为要侦听的IP地址.它会听取所有地址.
可能在您正在使用的套接字API中为此地址定义了一个常量.如果您使用的是标准C套接字API,那么它就是INADDR_ANY.