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

3
作为TDD(测试驱动开发)项目的一部分,我想要一个简单的OSX服务/服务器,它只是在两个客户端之间转发数据。其目的是在iOS中运行(正在测试)的代码与在OS X中运行的另一个代码之间实现通信。
我认为必须让双方在测试期间连接到服务器,这指向了TCP。
有很多使用NSStream创建简单客户端的示例,但我没有找到创建服务器端的方法。

你的编程问题是什么? - El Tomato
抱歉,我想我没有表达清楚。我需要连接的服务器端的示例,因为我在这个领域没有经验,也不知道从哪里开始。 - eklektek
2个回答

6

我认为这个转发软件应该是终端服务器的客户端,而不是其他代码的客户端(因为这样既不符合直觉,又有一定难度):

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版本(我相信OSX使用了一个BSD-rewrite)。
无论如何,如果您愿意安装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。

非常感谢让我了解nc(netcat)。 - eklektek
@user2196409 这个实际上有效吗?我对在OSX下使用“-c”选项感到担忧。 - trojanfoe
1
我尝试了一下,但正如你在最初的回复中所暗示的那样,这实际上并不是必要的。我只需要一种跨越iOS和OSX进程边界的方法。我为什么认为我需要端口转发我不确定!所以我使用GCDAsyncSocket使我的通信工作正常。然而,知道nc的存在还是很方便的。非常感谢。 - eklektek
1
@user2196409 好的,我已经测试了我的答案,但是它不起作用 :( 你需要使用socat - trojanfoe

0
Port Forwarding In Windows for iOS .

 1. Install Python 2.7 on windows system 
 2. Connect your iPhone to windows system 
 3. Download USB MXD1.0 and put it in C Drive
 4. Run Command Prompt : OpenC:\usbmuxd-1.0.8\python-client in cmd 
 5. Run **\Python27\python.exe tcprelay.py -t local port:remote Port**
     Eg :**\Python27\python.exe tcprelay.py -t 9892:9892**

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接