使用 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 端口时出错