在 Cocoa 中运行 Socket 服务器

2023-12-25

我正在尝试编写一个程序,该程序使用套接字通过网络与其自身的其他实例连接。由于最终我也想编写一个 Windows 版本,因此我目前在 OS X 端使用 BSD 套接字,以便我可以确保它将与(最终的)Windows 版本兼容。

到目前为止,我能够让它工作的唯一方法是在创建服务器套接字时指定我的实际 IP 地址。如果我使用 127.0.0.1,那么我只能从本地计算机进行连接。

虽然这在理论上很好,但问题是我如何知道要使用哪个 IP 地址?我不确定如何通过 Cocoa 获取当前计算机的 IP 地址,即使可以,如果有多个有效的 IP 地址(例如机场和以太网连接)怎么办?我怎么知道该使用哪一个?我可以询问用户,但这似乎不是他们可以/应该知道的事情。

如有必要,我可以提供客户端和服务器连接代码,但是鉴于我能够从远程计算机建立连接,我认为问题不在我的代码中。

感谢您的时间。 :)


使用 0.0.0.0 作为要侦听的 IP 地址。它将监听所有地址。

可能在您使用的套接字 API 中为此地址定义了一个常量。如果您使用标准 C 套接字 API,则为 INADDR_ANY。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Cocoa 中运行 Socket 服务器 的相关文章

  • iOS 版有 Parse.com 的替代品吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前使用 parse com 来管理用户 他们有很棒的 AP I 有不错的后端供我管理东西 但我更愿意托管我自己的数据 服务器后端 我可
  • NSImage 的 ressizedImageWithCapInsets ?

    In UIKit我们有 UIImage resizableImageWithCapInsets UIEdgeInsets capInsets 有类似的东西吗AppKit用于创建可平铺的NSImage NSImage 在 10 10 Yose
  • 如何将 AFNetworking 2 与摘要式身份验证结合使用

    我一直在搜索 AFNetworking 2 with Digest Authentication 一段时间 但没有找到关于它的有用讨论 除了this one https github com AFNetworking AFNetworkin
  • OS X 对 /usr/local/lib 的权限被拒绝

    我正在寻找有关权限问题的任何建议 直觉 线索 答案 自从我切换到新的 Macbook Pro 以来 这个问题一直困扰着我 这就是困境 某些程序在安装期间复制 usr local lib 下的库 并且在运行这些程序时出现崩溃 我认为这与此文件
  • 块与代表[重复]

    这个问题在这里已经有答案了 可能的重复 代码块能完全取代委托吗 https stackoverflow com questions 4584404 do code blocks completely replace delegates 我刚
  • 如何检测浏览器中操作系统是否处于深色模式?

    如同 如何检测 OS X 是否处于深色模式 https stackoverflow com questions 25207077 how to detect if os x is in dark mode 仅适用于浏览器 有没有人发现是否有
  • @interface 中的 Objective-c 特定 iOS 版本

    我正在尝试实现Apple Pay 并且我尝试实现两种方法 一种用于iOS10 一种用于iOS11 所以在我的实现中我有 void paymentAuthorizationViewController PKPaymentAuthorizati
  • 查找使用 AppleScript 安装的 Mac OSX 版本

    如何使用 AppleScript 查找我的 Mac 上安装的 OSX 版本 我想以编程方式安装应用程序并根据版本运行不同的 pkg 文件 Thanks 以下是如何使用内置函数在 AppleScript 中获取 OSX 版本 set sysi
  • 如何在 Objective C 类中设置布尔类型属性

    如何在 Objective C 类中使用布尔属性 我是这样做的 property nonatomic copy BOOL locationUseBool 但它给出了错误 具有 复制 属性的属性必须是对象类型 正确的申报方式是什么 您也可以这
  • Objective c,实例成员的内存管理

    我对实例成员的内存管理感到困惑 我有一个带有 ivar 的课程 DetailedResultsTableViewController detailedResultsTableViewController and property nonat
  • 将子视图控制器添加到当前视图控制器

    我正在尝试使用以下代码在代码中将子视图控制器添加到情节提要中的当前视图控制器 UIStoryboard storyboard UIStoryboard storyboardWithName Main bundle nil LogInTuto
  • Python套接字发送EOF

    我有一个简单的文件传输套接字程序 其中一个套接字发送文件数据 另一个套接字接收数据并写入文件我需要发送一个致谢一旦从目的地到源的传输完成 目的地代码 s accept f s makefile f read 1024 源代码 s conne
  • MPMediaItemPropertyPercientID 的 NSNumber 到 NSString 并再次返回

    我使用以下代码循环播放 iPhone 音乐库中的所有歌曲 NSArray songs NSArray alloc initWithArray MPMediaQuery songsQuery collections for MPMediaIt
  • didReceiveRemoteNotification 未调用,iOS 10

    在 iOS 9 3 中 didReceiveRemoteNotification方法在以下两种情况下都会被调用 1 收到推送通知时 2 当用户通过点击通知启动应用程序时 但在 iOS 10 上 我注意到didReceiveRemoteNot
  • 即使安装了 wget,它也未被识别为命令

    我知道我在这里做了一些非常愚蠢的事情 但我已经尝试了我能想到的事情 这是我的会议的相关部分 wget http pjmedia com instapundit bash wget command not found cd pip insta
  • 在 Grand Central Dispatch 中使用dispatch_sync

    任何人都可以用非常清晰的用例解释其目的是什么dispatch sync in GCD是为了 我不明白在哪里以及为什么我必须使用它 Thanks 当您想要执行一个块并等待结果时可以使用它 其中一个示例是使用调度队列而不是锁进行同步的模式 例如
  • 什么会导致“IO错误java.net.SocketException:选择失败”?

    我的笔记本电脑上运行一个服务器程序 相同的路由器和相同的代码 它工作正常 客户端可以连接 然而 当我将工作区复制到我的电脑并运行它时 我得到了这样的废话 IO错误java net SocketException 选择失败 这是代码 publ
  • iOS 版 Google Analytics 中的线程崩溃

    使用适用于 iOS 版本 3 0 9 以及一般的 3 0 x 的 Google Analytics 库 我们看到很多像下面这样的崩溃 它们似乎是随机发生的 Exception Type SIGBUS Exception Codes BUS
  • Objective-C 2.0中的多线程问题

    我有我的主应用程序委托 其中包含一个返回对象的方法 该应用程序委托在主线程上运行 我还有一个在不同线程上运行的 NSOperation 除了希望有时能够在主线程上调用我的应用程序委托方法之外 我还需要从 NSOperation 线程中调用它
  • Mac 上的 PythonXY?

    如何在 Mac OS X Lion 上安装 Python 我开始了 它应该能够通过 macports 但无论如何我找不到 mac ports 网站上所述的端口 pythonXY 我对 MAC 和 pythonXY 都不太了解 但在 pyth

随机推荐