- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我制作了一个简单的 NodeJS TCP 服务器,Java 客户端发送图像:
encodedImage = <a base64 encoded image>
out.write("IMG;" + encodedImage);
out.flush();
我的 NodeJS 服务器如下:
net.createServer(function(TCPSocket){
TCPSocket.on("data", function(data){
console.log("TCP Recieved: " + data.length);
});
}).listen(5000);
但是,即使我发送所有数据并立即刷新,输出如下:
TCP Recieved: 13
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1472
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
我希望它在一个简单的 block 中接收它,但我假设它是由于 NodeJS 的事件处理机制而发生的,对于作为单个 block 发送的数据实现单个数据 block 的最佳方法是什么?据我所知,一个 TCP 窗口可以比 1344 字节的数据大得多。我想过使用 header 值作为 HTTP,所以我知道广告的长度构造了我想要的对象。
最佳答案
你是对的,在 Node 中,数据将以分 block 的形式出现。您需要保留一个缓冲区,连接所有进入的 block ,然后在套接字关闭时将数据写出到文件系统。这是一个能够接收图像的示例:
net = require('net');
fs = require('fs');
net.createServer(function(socket){
var buffer = new Buffer(0, 'binary');
socket.on("data", function(data){
buffer = Buffer.concat([buffer, new Buffer(data,'binary')]);
});
socket.on("end", function(data) {
fs.writeFile("image.jpg", buffer, function(err) {
if(err) {
console.log(err);
} else {
console.log("Socket[" + socket.name + "] closed, wrote data out to sinfo.data");
}
});
});
}).listen(5000);
console.log('ready');
我使用 netcat 向它发送了一张图片:
$ netcat localhost 5000 < input.jpg
关于java - NodeJS TCP 服务器,onData 小块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279754/
我有一个 Gridview,其适配器基于我的 MineSweeper 游戏的 Tile 类型的 pojo 列表,我正在做一些单元测试,我想做的就是单击所有没有地雷的 gridview 项目,然后长按所
我有一个 Activity 与 ListView (id: android.R.id.list)。 ListView 显示来自自定义适配器的信息,我想使用 Espresso 单击特定项目中的特定 Vi
我现在有点不知所措。我有一些代码可以在数据可用时从套接字读取数据,但目前它在一个单独的线程上的 while 循环中,并且由于没有可用数据而在函数返回时消耗 50% 的 CPU。我真正想要的是 Sock
我正在尝试验证 ListView 不包含特定项目。这是我正在使用的代码: onData(allOf(is(instanceOf(Contact.class)), is(withContactItemN
我制作了一个简单的 NodeJS TCP 服务器,Java 客户端发送图像: encodedImage = out.write("IMG;" + encodedImage); out.flush()
我正在尝试访问一个 View 的 subview 。这是我目前正在尝试开始工作的路线。 onData(withDesc("Description")).onChildView(withId(R.id.
在nodejs应用程序中,我需要生成一个子进程,并将stdio设置为“继承”模式,所以基本上: var child = spawn('some/command', [], { stdio: [pr
我一直在开发一种使用 WebRTC 在浏览器和 native 客户端之间交换音频的产品, native 端是用 C++ 实现的。目前我已经构建了 webRtc 的最新稳定版本(分支:branch-he
在使用 Facebook graph api 时,我使用 https.get 来请求 facebook 用户数据。 var optionsP = { host: 'graph.face
我在使用 http.request 发出客户端请求时遇到了一些错误( Node v0.6.18,v0.6.3),以下代码产生了错误,我有一些疑问。 var http = require('http')
我正在尝试在将 Node.js http 流发送到解析器之前对其进行编辑。我已经实现了以下代码 //catch any connection event to this server server.o
我有一个命令行 Dart 脚本客户端通过 [dart:io] websocket 与 Jetty 服务器进行交互。我已经实现了一个自定义消息子协议(protocol),它使用反射(双方)使用二进制编码
我有一个app,有ListView,我想找LinearLayout,id=order_untake_jijia_listview_jia 代码是: onData(withClassName(endsW
我是一名优秀的程序员,十分优秀!