Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 音频传输android和节点webkit_Javascript_Android_Node.js_Sockets_Webkit - Fatal编程技术网

Javascript 音频传输android和节点webkit

Javascript 音频传输android和节点webkit,javascript,android,node.js,sockets,webkit,Javascript,Android,Node.js,Sockets,Webkit,我一直在尝试在我的android应用程序和我的node webkit应用程序之间传输音频文件,但我对socket.io/nodejs/delivery.js的世界还不熟悉 这是我的密码: android代码错误行:os.writemybytearray,0,mybytearray.length protected Void doInBackground(Void... arg0) { Socket sock; try { // sock =

我一直在尝试在我的android应用程序和我的node webkit应用程序之间传输音频文件,但我对socket.io/nodejs/delivery.js的世界还不熟悉

这是我的密码:

android代码错误行:os.writemybytearray,0,mybytearray.length

protected Void doInBackground(Void... arg0) {
        Socket sock;
        try {
            // sock = new Socket("MY_PCs_IP", 1149);
            sock = new Socket("192.168.0.10", 5001);
            System.out.println("Connecting...");
            // sendfile
            File myFile = new File(this.currentSong.getPath());
            byte[] mybytearray = new byte[(int) myFile.length()];
            FileInputStream fis = new FileInputStream(myFile);
            BufferedInputStream bis = new BufferedInputStream(fis);
            bis.read(mybytearray, 0, mybytearray.length);
            OutputStream os = sock.getOutputStream();
            System.out.println("Sending...");
            os.write(mybytearray, 0, mybytearray.length);
            os.flush();
            System.out.println("Sended..");
            // RESPONSE FROM THE SERVER
            BufferedReader in = new BufferedReader(
                    new InputStreamReader(sock.getInputStream()));
            in.ready();
            String userInput = in.readLine();
            System.out.println("Response from server..." + userInput);

            sock.close();
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
节点webkit代码

var io  = require('socket.io').listen(5001),
dl = require('delivery'), //delivery.server
fs  = require('fs');

io.sockets.on('connection', function(socket){
delivery = dl.listen(socket);
delivery.on('receive.success',function(file){

    fs.writeFile("music/"+file.name,file.buffer, function(err){
        if(err){
            console.log('File could not be saved.');
        }else{
            console.log('File saved.');
            addSong("music/"+file.name);

        };
    });
});
});
注意:我的服务器端运行良好,已经通过js客户端测试

这就是我得到的错误:

Android端错误:

08-28 14:56:36.180: W/System.err(30510): java.net.SocketException: sendto failed: EPIPE (Broken     pipe)
08-28 14:56:36.180: W/System.err(30510):    at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:499)
08-28 14:56:36.180: W/System.err(30510):    at libcore.io.IoBridge.sendto(IoBridge.java:468)
08-28 14:56:36.180: W/System.err(30510):    at java.net.PlainSocketImpl.write(PlainSocketImpl.java:507)
因此,可能是因为协议原因,我尝试进行错误连接是错误的。。在套接字和套接字之间。io。。? 如果有人能帮我的忙,我会很高兴的。我已经环顾四周了,但正如我所说的,我对这个世界是新的,我感到迷茫 基本上我的问题是:怎么了?我如何实现我的目标


感谢您抽出时间

我正在使用com.koushikdutta.async.http.socketio.SocketIOClient 此库和socket.io存在一些问题,但可以通过在节点webkit上使用此依赖项来解决

socket.io:~0.9

还需要读取文件->base64编码->然后在服务器端发出字符串,必须执行以下操作:

socket.on('finishFileTransfer',function(){
    fs.writeFile("music/"+fileName,new Buffer(file,'base64'), function(err){
        if(err){
            console.log('File could not be saved.');
        }else{
            console.log('File saved.');
            addSong("musica/"+fileName);
        }
        file = "";
        fileName = null;

    });
});

用这个代替送货,它更好。。var io=require'socket.io'.listen80;var SocketIOFileUpload=requiresocketio文件上传;io.onconnection,functionsocket{var uploader=new SocketIOFileUpload;uploader.dir=/musica;uploader.listensocket;};这就是我试过的。。仍然失败