Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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
Java 通过套接字传输多个文件时出错_Java_Android_Sockets - Fatal编程技术网

Java 通过套接字传输多个文件时出错

Java 通过套接字传输多个文件时出错,java,android,sockets,Java,Android,Sockets,我创建了一个应用程序,其中一个设备必须向另一个设备发送2个txt文件 客户端(发送的客户端)的代码片段: 接收器/服务器的代码段: private class ReceiveRequestedFileAsync extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { ServerSocket ser

我创建了一个应用程序,其中一个设备必须向另一个设备发送2个txt文件

客户端(发送的客户端)的代码片段:

接收器/服务器的代码段:

private class ReceiveRequestedFileAsync extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {

        ServerSocket serverSocket = null;
        Socket client = null;

        InputStream in = null;
        OutputStream out = null;

        try {

            Log.v("RequestedFileReceiveService", "Creating server socket");
            serverSocket = new ServerSocket(8383);

            client = serverSocket.accept();


            in = client.getInputStream();
            out = new FileOutputStream(Environment.getExternalStorageDirectory()+"/"+retrieveFileNameFromURL(getInsertedUrl()));


            byte[] bytes = new byte[16*1024];


            int count;
            while ((count = in.read(bytes)) > 0)
            {
                out.write(bytes, 0, count);
            }

            out.close();
            in.close();
            client.close();
            serverSocket.close();

            return null;
        } catch (IOException e) {}

        return null;

    }

    @Override
    protected void onPostExecute(String result)
    {

        _ReceiveRequestedFileAsync2 = new ReceiveRequestedFileAsync2();
        _ReceiveRequestedFileAsync2.execute();

    }
}

private class ReceiveRequestedFileAsync2 extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {

        ServerSocket serverSocket = null;
        Socket client = null;

        InputStream in = null;
        OutputStream out = null;

        try {

            Log.v("RequestedFileReceiveService", "Creating server socket");
            serverSocket = new ServerSocket(8484);

            client = serverSocket.accept();


            in = client.getInputStream();
            out = new FileOutputStream(Environment.getExternalStorageDirectory()+"/skc"+retrieveFileNameFromURL(getInsertedUrl()));


            byte[] bytes = new byte[16*1024];


            int count;
            while ((count = in.read(bytes)) > 0)
            {
                out.write(bytes, 0, count);
            }

            out.close();
            in.close();
            client.close();
            serverSocket.close();

            return null;
        } catch (IOException e) {}

        return null;

    }
}
私有类ReceiveRequestedFileAsync扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
ServerSocket ServerSocket=null;
socketclient=null;
InputStream in=null;
OutputStream out=null;
试一试{
Log.v(“RequestedFileReceiveService”,“创建服务器套接字”);
serverSocket=新的serverSocket(8383);
client=serverSocket.accept();
in=client.getInputStream();
out=newfileoutputstream(Environment.getExternalStorageDirectory()+“/”+retrieveFileNameFromURL(getInsertedUrl());
字节[]字节=新字节[16*1024];
整数计数;
而((计数=in.read(字节))>0)
{
out.write(字节,0,计数);
}
out.close();
in.close();
client.close();
serverSocket.close();
返回null;
}捕获(IOE){}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果)
{
_ReceiveRequestedFileAsync2=新的ReceiveRequestedFileAsync2();
_ReceiveRequestedFileAsync2.execute();
}
}
私有类ReceiverRequestedFileAsync2扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
ServerSocket ServerSocket=null;
socketclient=null;
InputStream in=null;
OutputStream out=null;
试一试{
Log.v(“RequestedFileReceiveService”,“创建服务器套接字”);
serverSocket=新的serverSocket(8484);
client=serverSocket.accept();
in=client.getInputStream();
out=newfileoutputstream(Environment.getExternalStorageDirectory()+“/skc”+retrieveFileNameFromURL(getInsertedUrl());
字节[]字节=新字节[16*1024];
整数计数;
而((计数=in.read(字节))>0)
{
out.write(字节,0,计数);
}
out.close();
in.close();
client.close();
serverSocket.close();
返回null;
}捕获(IOE){}
返回null;
}
}

第一个文件传输成功,但当我尝试传输第二个文件时,出现以下错误:

      01-17 22:23:44.882 25187-27460/com.android.python27 W/System.err: java.net.ConnectException: failed to connect to /192.168.49.10 (port 8484): connect failed: ECONNREFUSED (Connection refused)
01-17 22:23:44.892 25187-27460/com.android.python27 W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:124)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.Socket.startupSocket(Socket.java:590)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.Socket.tryAllAddresses(Socket.java:128)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.Socket.<init>(Socket.java:178)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.Socket.<init>(Socket.java:150)
01-17 22:23:44.882 25187-27460/com.android.python27 W/System.err:java.net.ConnectException:无法连接到/192.168.49.10(端口8484):连接失败:EconRefused(连接被拒绝)
01-17 22:23:44.892 25187-27460/com.android.python27 W/System.err:at libcore.io.IoBridge.connect(IoBridge.java:124)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:at java.net.Socket.startupSocket(Socket.java:590)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:at java.net.Socket.tryalladdress(Socket.java:128)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:at java.net.Socket.(Socket.java:178)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:at java.net.Socket.(Socket.java:150)
您创建了两台服务器(在两个不同的端口上)。但是,只有当第一台服务器接收到文件时,才能创建第二台服务器

在客户端,您创建直接发送两个文件的rwo客户端。我认为第二台客户端无法连接,因为第二台服务器尚未启动

话虽如此,我想知道你为什么使用两个端口。一台服务器可以处理多个客户端和文件传输。

您可以创建两台服务器(在两个不同的端口上)。但是,只有当第一台服务器接收到文件时,才能创建第二台服务器

在客户端,您创建直接发送两个文件的rwo客户端。我认为第二台客户端无法连接,因为第二台服务器尚未启动

话虽如此,我想知道你为什么使用两个端口。一台服务器可以处理多个客户端和文件传输

      01-17 22:23:44.882 25187-27460/com.android.python27 W/System.err: java.net.ConnectException: failed to connect to /192.168.49.10 (port 8484): connect failed: ECONNREFUSED (Connection refused)
01-17 22:23:44.892 25187-27460/com.android.python27 W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:124)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.Socket.startupSocket(Socket.java:590)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.Socket.tryAllAddresses(Socket.java:128)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.Socket.<init>(Socket.java:178)
01-17 22:23:44.902 25187-27460/com.android.python27 W/System.err:     at java.net.Socket.<init>(Socket.java:150)