objective-c - 简单的 OS X TCP 转发服务器/服务

标签 objective-c macos sockets tcp

作为 TDD(测试驱动开发)项目的一部分,我想要一个简单的 OSX 服务/服务器,它只在两个客户端之间转发数据。目的是使在 iOS 中运行的一段代码(正在测试)与在 OS X 中运行的另一段代码之间能够进行通信。

我想我需要双方在测试期间连接到服务器,它指向 TCP

有很多使用 NSStream 创建简单客户端的示例,但未能找到创建服务器端的原因。

最佳答案

我原以为这个转发软件成为最终服务器的客户端是正常的,而不是其他代码片段都成为它的客户端(因为它们都是反-直观且有点难以实现):

iOS App -> Forwarding Server -> OSX Server

您可以使用 netcat(默认安装在 OSX 上)实现此目的,只需使用:

$ nc -l -p local-port -c "nc osx-host osx-port"

(见下文)

iOS 应用程序只需要连接到此转发服务器运行的任何计算机上的 local-port

编辑 当我实际测试我的答案时,我发现 OSX 提供的 netcat 不支持端口转发,我提供的答案只适用于 Linux 版本(我相信有一个 BSD-rewrite OSX 使用的)。

不管怎样,只要你乐意安装就可以实现macports并使用 socat。这是一个将端口 8888 重定向到 www.google.com:80 的工作示例:

$ sudo port install socat
$ socat TCP-LISTEN:8888,fork TCP:www.google.com:80

如果您随后在浏览器中连接到 http://localhost:8888,这将访问 Google。

关于objective-c - 简单的 OS X TCP 转发服务器/服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21202287/

相关文章:

ios - 为什么滑动以删除并拉动刷新会导致崩溃?

ios - 导航栏颜色不会变回来? IOS 7

python - 将数据从python程序打印到mac上的终端

java - 通过套接字复制文件的最快方法

iphone - gzipInflate/gzipDeflate 错误

php - Xcode 始终将 .php 设置为默认编辑器

python - 为什么 Mac OS X 上的 Python time.time() 和 time.clock() 存在差异?

python - 如何检测客户端何时与 UDS(Unix 域套接字)断开连接

是否可以使用本地端口通过 UDP 连接到多个远程对等点?

ios - 当与核心位置管理器对象结合使用时,initWithCoder 实际上在做什么?