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

Posted

技术标签:

【中文标题】使用 GapSocket 将字符串发送到 tcp 套接字【英文标题】:Send string to a tcp socket using GapSocket 【发布时间】:2011-10-12 23:42:16 【问题描述】:

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

    来自cocoaasyncsocket 的 asyncsocket.m 和 asyncsocket.h GapSocket 中的 GapSocketCommand.m 和 GapSocketCommand.h 包含 GapSocket.js 并引用了 www 文件夹下 index.html 中的 js 文件。

以下是我的 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连接打开的端口并发送数据:

远程登录 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 的新手)。我按照自述文件中的步骤进行操作,但没有提供太多上下文。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

有两点不对:

首先,您需要将 IP 地址放在引号中。 其次,您需要使用运行netcat的机器的IP地址(127.0.0.1是模拟器本身的IP地址;您应该可以使用ifconfig或类似的方式找到您的IP地址)。李>

例如,它应该如下所示:

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

另外,别忘了在PhoneGap.plist注册插件。

【讨论】:

以上是关于使用 GapSocket 将字符串发送到 tcp 套接字的主要内容,如果未能解决你的问题,请参考以下文章

使用 ngrok 使用 tcp 隧道将数据发送到 tcp 端口时出错

使用 Qt 通过 TCP 套接字部分发送 xml 消息

如何使用 Windows 版 NetCat 将二进制文件发送到 TCP 连接?

通过 TCP 将 uint 发送到服务器 c#

ESP32 TCP客户端

如何使用 TCP 或 UDP 将数据从 Windows Phone 8.1 发送到 PC?