我正在开发一个 Android 应用程序,它将向运行在 Raspberry Pi 上的外部 NodeJs 服务器发送一个字符串数组。
我目前正在使用 AsyncTask 处理应用程序的发送端,其中设置了针对 NodeJs 服务器的套接字层。服务器正在使用 net 和 socket 模块成功地接收来自应用程序的调用,但是我正在努力传递实际数据。
目前我正在使用 OutputStream 发送数据。
OutputStream socketStream = socket.getOutputStream();
ObjectOutputStream objectOutput = new ObjectOutputStream(socketStream);
objectOutput.writeObject(new String[] {"Test", "Test2", "Test3"});
Log.i("Array Object", objectOutput.toString());
objectOutput.close();
socketStream.close();
这是编写要发送到 NodeJs 服务器的字符串数组的正确方法吗?
此外,NodeJs 服务器上的代码将包含什么以便在接收到这些写入数据后读取它?
更新
NodeJs 服务器基于本教程http://helloraspberrypi.blogspot.co.uk/2014/03/create-tcp-server-using-nodejs-with-net.html
其中函数 callback_server_connection 在 net.createServer(callback_server_connection) 中被调用;功能。
function callback_server_connection(socket){
var remoteAddress = socket.remoteAddress;
var remotePort = socket.remotePort;
socket.setNoDelay(true);
console.log("connected: ", remoteAddress, " : ", remotePort);
var msg = 'Hello ' + remoteAddress + ' : ' + remotePort + '\r\n'
+ "You are #" + count + '\r\n';
count++;
socket.end(msg);
socket.on('data', function (data) {
console.log(data.toString());
});
socket.on('end', function () {
console.log("ended: ", remoteAddress, " : ", remotePort);
});
}