通过R套接字

时间:2016-08-17 12:58:39

标签: json r sockets

我目前正在尝试使用JSON语法处理来自TCP服务器套接字的R中的数据。

我的脚本实际上可以通过

连接到服务器
socketConnection(host = "whateverhost", port = "8080", server = FALSE, encoding = "UTF-8") 

我通过

解析我的JSON对象
writeChar(con = server, object = "{ \"whar\" : \"whatwhar\" }", eos = NULL);

在我的JSON字符串后,我需要将EOT-Character(文档提到ASCII 4)传递给服务器以完成我的查询。

它是通过

尝试的
writeChar(con = server, object = as.character(04), eos = NULL);

但无法让它发挥作用。

有没有人有任何建议?!

谢谢!

1 个答案:

答案 0 :(得分:0)

不是答案,但我需要向OP显示图片

我启动了一个netcat服务器来监听8080:

nc -l 8080

然后我设置tcpdump来捕获数据包:

tcpdump -i lo0 dst port 8080 -w 8080.dmp

然后我运行了你的连接代码和初始JSON发送代码。

然后,我是否使用直接unicode表示:

writeChar(con = server, object = "\U0004", eos = NULL)

或者,更加间接的转换方式来生成相同的东西:

writeChar(con = server, object = rawToChar(as.raw(4)), eos = NULL)

我看到EOT(从wireshark数据段视图中的十六进制转储部分中突出显示的04)。

您是否100%确定它是系统所期望的标准EOT?远程系统在它之后是否有任何期待?是否有其他网络组件可以缓冲任何内容?

enter image description here