使用GapSocket将字符串发送到tcp套接字

时间:2011-10-12 23:42:16

标签: ios sockets cordova

我正在尝试使用GapSocket建立套接字连接,并将一些数据(字符串)发送到从PhoneGap到打开端口8888的计算机的tcp套接字。我已经包含了所有依赖项:

  1. 来自cocoaasyncsocket
  2. 的asyncsocket.m和asynsocket.h
  3. 来自GapSocket的GapSocketCommand.m和GapSocketCommand.h
  4. 包含GapSocket.js并在www文件夹下的index.html引用了js文件。
  5. 以下是我的index.html文件:

    <!DOCTYPE html>
    <html>
    <head>
        <title>Socket Test</title>
        <script type="text/javascript" charset="utf-8" src="phonegap-1.1.0.js"></script>
        <script type="text/javascript">
            document.addEventListener("deviceready", function(){
                var mySocket = new GapSocket(127.0.0.1, 8888);
                mySocket.onopen = function(){ alert("Socket opened."); };
                mySocket.send("some data here");
            }, false);
         </script>
        </head>
    <body>
    </body>
    

    它编译好了,不会抛出任何依赖性错误,并且能够在iOS模拟器上运行。在我运行之前,我使用以下命令在127.0.0.1(模拟器运行的机器)上打开了端口8888:

      

    nc -l 127.0.0.1 8888

    我可以使用telnet连接开放端口并发送数据:

      

    telnet 127.0.0.1 8888

    发送以下数据:

    eddy-2:~ eddy$ telnet 127.0.0.1 8888
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    test
    test
    

    回到iOS模拟器,它运行但不发送任何东西,我不确定我是否正在做正确的初始化套接字的方式(我是PhoneGap和Xcode的新手)。我按照自述文件的步骤操作,但它没有提供太多的上下文。

2 个答案:

答案 0 :(得分:3)

你需要在cordova.plist插件中包含一个带有GapSocketCommand字符串和值的条目

答案 1 :(得分:1)

有两件事是错的:

  • 首先,您需要将IP地址放在引号中。
  • 其次,您需要使用运行netcat的机器的IP地址(127.0.0.1是模拟器本身的IP地址;您应该能够使用ifconfig或类似物品找到您的IP地址)。

例如,它看起来应该是这样的:

var mySocket = new GapSocket("192.168.0.100", 8888);

另外,不要忘记在PhoneGap.plist注册插件。