标签: file-transfer

python套接字文件传输

我正在尝试通过套接字写入传输文件或数据块.我觉得好像我正在重新发明轮子,但我对一个简单的解决方案的搜索失败了(我发现的一切都太简单或太复杂).服务器将在运行python 2.5.4的手机上运行.预期的应用是在电话和主机之间同步音乐文件.

这是我所拥有的内容,似乎有效.我发送并收到"确定"以分解流.

是来回发送'ok'作为停止位来分解数据流是一种合理的技术吗?

有没有标准的方法来做到这一点?

考虑到手机内存和处理能力的限制,在手机上运行任何类型的库服务器(ftp,http)都不是一个有用的解决方案.

服务器:

import socket

c = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
c.bind(('', 1234))
c.listen(1)
s,a = c.accept()

while True:
    data = s.recv(1024)
    cmd = data[:data.find('\n')]

    if cmd == 'get':
        x, file_name, x = data.split('\n', 2)
        s.sendall('ok')
        with open(file_name, 'rb') as f:
            data = f.read()
        s.sendall('%16d' % len(data))
        s.sendall(data)
        s.recv(2)

    if cmd == 'end':
        s.close()
        c.close()
        break
Run Code Online (Sandbox Code Playgroud)

客户:

import socket

s = socket.socket()
s.connect(('192.168.1.2', 1234))

def get_file(s, file_name):
    cmd = 'get\n%s\n' % (file_name)
    s.sendall(cmd)
    r = s.recv(2)
    size = int(s.recv(16)) …
Run Code Online (Sandbox Code Playgroud)

python sockets file-transfer

10
推荐指数
1
解决办法
3万
查看次数

在Windows上查看android的root访问文件/文件夹

我正在尝试使用USB调试模式和Windows在Android设备上查看根级别的文件和文件夹.这可能吗?电话根深蒂固.

我已经下载了一个文件浏览器应用程序,它允许我在手机上查看它.

我的主要目标是从手机中复制mmssms.db.

android root file-transfer

10
推荐指数
3
解决办法
11万
查看次数

在ios中使用XmppFrameWork的FileTransfer

我已经使用本教程实现了一些文件传输代码:

请点击这里.

和我正在使用的代码:

- (void)sendToOtherDevice:(NSData *)fileData receiverJid:(NSString *)receiverJid
{
    XMPPJID *jid = [XMPPJID jidWithString:receiverJid];

     XMPPSIFileTransfer *sifiletransfer = [[XMPPSIFileTransfer alloc] init];
    [sifiletransfer initiateFileTransferTo:jid withData:fileData];

    NSString *s = [NSString stringWithFormat:@"%@/spark",receiverJid];
    NSString *jabbarID = [[[[self appDelegate] xmppStream] myJID] bare];
     XMPPJID *senderjid = [XMPPJID jidWithString:jabbarID];

    //[TURNSocket setProxyCandidates:[NSArray arrayWithObjects:s, nil]];
   // [TURNSocket setProxyCandidates:[NSArray arrayWithObjects:s,jabbarID, nil]];

    [TURNSocket setProxyCandidates:[NSArray arrayWithObjects:jid.domain,senderjid.domain, nil]];

   // [TURNSocket setProxyCandidates:[NSArray arrayWithObjects:jid.domain, nil]];
    //[TURNSocket setProxyCandidates:[NSArray arrayWithObjects:@"111.11.111.111", nil]];

     TURNSocket *socket1 = [[TURNSocket alloc] initWithStream:[self xmppStream] toJID:jid];

   // [turnSockets addObject:turnSocket];
    [socket1 startWithDelegate:self delegateQueue:dispatch_get_main_queue()];

}


-(void)turnSocket:(TURNSocket *)sender …
Run Code Online (Sandbox Code Playgroud)

file-transfer ios xmppframework

10
推荐指数
1
解决办法
5604
查看次数

哪种协议最适合文件传输

我可以用来传输大文件的最佳协议是什么,应该快速可靠?它必须支持低带宽系统,因为我需要跨印度传输文件.文件大小可以是100到500MB.

network-protocols file-transfer

9
推荐指数
2
解决办法
3万
查看次数

在Cordova中合并文件的多个部分

在我的Cordova应用程序中,我正在下载任意文件,如图像或视频文件.这是通过Cordova文件传输插件和"Range"标头完成的,因为我需要部分下载文件.

我的问题是,我想将几​​个小的"字节"文件合并回原来的文件,他们曾经在那里使用该文件.每次我尝试通过FileReader将结果部分读取为binaryString并将它们一起写入新文件时,该文件最终会比原始文件altogther的部分大得多,并且生成的文件无法使用.

任何帮助表示赞赏.

这是我的代码,直到现在(冗长和丑陋):

document.addEventListener('deviceready', deviceready, false);

var App;

var finishedFileUrl = "";

var async = {
    sequence: function(items, callback) {       
        var def = $.Deferred(),
        deferrers = [$.Deferred()];

        for(var i = 0; i < items.length; i++) {
            (function (n) {     
                deferrers[n + 1] = $.Deferred();
                deferrers[n].always(function() {
                    callback(items[n], deferrers[n + 1]);
                });
            })(i);  
        }
        deferrers[items.length].always(function() {
            def.resolve();
        });         
        deferrers[0].resolve();

        return def.promise();
    }
}

var aSmallImageArray = [
'' // Put URL to JPG accessible with Range Header Request here
]; …
Run Code Online (Sandbox Code Playgroud)

javascript file concatenation file-transfer cordova

9
推荐指数
1
解决办法
747
查看次数

Ionic 2 fileTransfer.download没有在iOS上做出反应

我在Android上开发了一款Ionic 2应用程序,现在正尝试将其用于iOS.

该应用程序在初始登录时下载了大量文件,我使用Ionic-Native Transfer插件.在Android上一切正常,但在iOS上,应用程序似乎停留在fileTransfer.download()函数的承诺中,它甚至不会抛出错误.

示例代码:

private downloadFile(downloadURL: string, filename: string) {
    return new Promise((resolve, reject) => {
        this.fileTransfer.download(downloadURL, this.file.dataDirectory + filename, true).then(_ => {
            console.log("download of " + filename + " complete");
            resolve("download finished");
        }).catch(err => {
            console.log(err);
            reject("download error");
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

我也尝试使用this.file.documentsDirectory代替iOS,但我仍然没有得到任何错误或成功输出.

downloadURL来自firebaseStorage链接,但我也使用通常的下载URL进行了测试.

我认为它确实与权限有关,但还没有找到解决方案.另一个假设是,iOS上的多个线程存在限制,大约有30-100个承诺存在.

但奇怪的是缺少错误消息,它只是卡住而不是单个下载完成.

任何帮助表示赞赏!

编辑:

我还没有弄清楚问题的原因,但与此同时,Ionic发布了一个新版本的Transfer Plugin,现在在官方文档中称为FileTransfer.一旦我更改了我的代码以使用新的FileTransfer插件,问题就消失了.

我希望这有助于其他遇到同样问题的人.

file-transfer ios ionic2 ionic-native angular

9
推荐指数
1
解决办法
669
查看次数

使用多个连接下载curl

我正在尝试将多gb文件从一台服务器转移到另一台服务器; 问题是RTT是150ms +.我已经尝试过使用aria2,但它仅限于16个连接,lftp没有任何防止停止传输的保护.

我想知道是否可以使用curl cli下载一个具有多个连接的文件.

curl download file-transfer

8
推荐指数
2
解决办法
9993
查看次数

蓝牙文件传输Android

我在通过蓝牙套接字发送大文件时遇到问题.较小的文件正确传输.我相信最多可以正确传输161280个字节.

编辑:我做了一些测试并缩小了原因.看起来

outStream.write(mybytearray, 0, mybytearray.length);
Run Code Online (Sandbox Code Playgroud)

在发送代码部分不写超过161280字节.我通过不关闭套接字连接看到了这种行为,从而导致read接收部分在161280字节上"阻塞".这里的蓝牙输出流有什么问题?我究竟做错了什么?

编辑2: 这样做让它通过.

for(int i = 0 ; i < mybytearray.length ; i++){
    outStream.write(mybytearray[i]);
}
Run Code Online (Sandbox Code Playgroud)

发送代码:

    try {
        outStream = mBluetoothSocket.getOutputStream();
        Log.d(TAG,"outStream created success!");
    } catch (IOException e) {
        Log.d(TAG,
                "ON RESUME: Output stream creation failed.",
                e);
    }

    File myFile = new File(file_name);
    Log.d(TAG,"file /source.pdf created success!");

    byte[] mybytearray = new byte[(int)myFile.length()];
    Log.d(TAG,"file length() =" + (int)myFile.length());

    FileInputStream fis = new FileInputStream(myFile);
    Log.d(TAG,"fis created");

    BufferedInputStream bis = new BufferedInputStream(fis,1272254 );
    Log.d(TAG,"bis created …
Run Code Online (Sandbox Code Playgroud)

android bluetooth file-transfer

8
推荐指数
1
解决办法
2万
查看次数

Android文件传输无法通过XMPP和OpenFire工作

问题:无法通过XMPP和OpenFire Server接收发送到我的Android应用程序的文件.我可以成功发送文件.我使用的asmack jar是asmack-jse-buddycloud-2010.12.11.jar

代码:

    connConfig = new ConnectionConfiguration("beta.myCompany.co.uk", 5222);
    connConfig.setSASLAuthenticationEnabled(true);
    try {
        connect("username", "password");
    } catch (Exception e) {
        e.printStackTrace();
    }

    ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection);
    if(sdm == null)
        sdm = new ServiceDiscoveryManager(connection);

    fileTransferManager = new FileTransferManager(connection);
    FileTransferNegotiator.setServiceEnabled(connection, true);

fileTransferManager.addFileTransferListener(new FileTransferListener() {
    @Override
    public void fileTransferRequest(FileTransferRequest request) {
        IncomingFileTransfer transfer = request.accept();
        try {
            FileOutputStream fos = openFileOutput(request.getFileName(), Context.MODE_PRIVATE);
            InputStream stream = transfer.recieveFile();//THIS FAILS!
            fos.write(IOUtils.toByteArray(stream));
            fos.close();    
        } catch (Exception e) {
            e.printStackTrace();
        }
}
Run Code Online (Sandbox Code Playgroud)

错误(如果文件是通过Spark发送的): …

android xmpp openfire file-transfer asmack

8
推荐指数
1
解决办法
8748
查看次数

如何使用Apache Common vfs列出文件目录/文件

我是使用Apache Common vfs的新手,我成功连接到我已经阅读过docs的服务器但是我坚持使用这段代码.我如何列出目录/文件?

....
Session session = null;
        FileSystemManager fsManager = null;
        FileSystem fs = null;
        try {
            String host = "host_here";
            int port = 22;

            String userStr = "user_here";
            char [] username = userStr.toCharArray();

            String passStr = "password_here";
            char [] password = passStr.toCharArray();

            session = SftpClientFactory.createConnection(host, port, username, password, null);
            //session.connect();

            System.out.println("Connected to the server");

            FileSystemOptions opts = new FileSystemOptions();
            fsManager = VFS.getManager();
            FileObject file = fsManager.resolveFile("ftp://"+userStr+":"+passStr+"@"+host+"/home/", opts);    

            // .... whats next i do here? .....

        } catch (Exception …
Run Code Online (Sandbox Code Playgroud)

ftp jsch file-transfer apache-commons-vfs

8
推荐指数
1
解决办法
1万
查看次数