作为 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/