小编One*_*oft的帖子

Android通过socket发送大文件

目前我正在尝试为我的Android设备创建一个小套接字应用程序.

我想通过套接字连接将大文件(~500MB)发送到我的笔记本电脑/ PC或其他任何东西.我在我的Android设备上使用套接字客户端连接到我的PC上的套接字服务器但是,当我尝试发送测试字段(~460MB)时,我的应用程序崩溃了,它说:

"抛出OutOfMemoryError"无法分配441616290字节分配4194304空闲字节和90MB直到OOM""

我想我的客户端无法处理这个文件大小.所以我的问题是:有没有办法用TCP套接字连接处理这些大文件?我的代码可以很好地处理小文件(例如5MB),但是文件更大会失败.

这是我到目前为止:

客户端在我的Android设备上运行:

private class Connecting extends AsyncTask<String, Integer, String>
{
    @Override
    protected String doInBackground(String... serverAdd) 
    {
        String filePath = "Path to file";

        File sdFile = new File(filePath);

        try {

            client = new Socket("ip", "port");

            outputStream = client.getOutputStream();                
            byte[] buffer = new byte[1024];
            FileInputStream in = new FileInputStream(sdFile);
            int rBytes;
            while((rBytes = in.read(buffer, 0, 1024)) != -1)
            {
              outputStream.write(buffer, 0, rBytes);
            }

            outputStream.flush();
            outputStream.close();
            client.close(); 


        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) { …
Run Code Online (Sandbox Code Playgroud)

sockets android tcp

6
推荐指数
1
解决办法
4227
查看次数

标签 统计

android ×1

sockets ×1

tcp ×1