Android-使用Ejabberd和Smack时发生文件传输错误

Android-使用Ejabberd和Smack时发生文件传输错误,android,ejabberd,smack,Android,Ejabberd,Smack,我使用的是Smack 4.3.2(Android客户端)和Ejabberd服务器。 当我发送文本时,它工作得非常好。但是我在文件传输方面有问题。 当我尝试发送文件时,我收到了这个错误 我可以获取文件信息,如文件名,文件大小,但无法获取文件。当我从=User1发送到=User2时,我会收到附加的错误 但是当我从=User1发送到=User1时,它是成功的 我怎样才能解决这个问题 有人犯过这样的错误吗?ejabberd_18+smack4.3.2+android的文件传输有什么例子吗 fileTra

我使用的是Smack 4.3.2(Android客户端)和Ejabberd服务器。 当我发送文本时,它工作得非常好。但是我在文件传输方面有问题。 当我尝试发送文件时,我收到了这个错误

我可以获取文件信息,如
文件名
文件大小
,但无法获取文件。当我从
=User1
发送到
=User2
时,我会收到附加的错误

但是当我从
=User1
发送到
=User1
时,它是成功的

我怎样才能解决这个问题

有人犯过这样的错误吗?ejabberd_18+smack4.3.2+android的文件传输有什么例子吗

fileTransferManager.addFileTransferListener(
    new FileTransferListener() {
        @Override
        public void fileTransferRequest(final FileTransferRequest request) {
            IncomingFileTransfer transfer = request.accept();
            final File file = new File( “/storage/sdcard/Download/” + transfer.getFileName());
            try {
                transfer.receiveFile(file);
            } catch(Exception e){
                e.printStackTrace();
            }
        }
});
以下是错误:

myapplication1 W/System.err: org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: item-not-found - cancel [Could not establish socket with any provided host]
05-04 21:54:21.190 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamRequest.cancelRequest(Socks5BytestreamRequest.java:289)
05-04 21:54:21.190 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamRequest.accept(Socks5BytestreamRequest.java:255)
05-04 21:54:21.190 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.negotiateIncomingStream(Socks5TransferNegotiator.java:102)
05-04 21:54:21.190 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator.createIncomingStream(FaultTolerantNegotiator.java:72)
05-04 21:54:21.190 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$2.call(IncomingFileTransfer.java:191)
05-04 21:54:21.190 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$2.call(IncomingFileTransfer.java:186)
05-04 21:54:21.190 9864-9924/com.example.myapplication1 W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-04 21:54:21.191 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.negotiateStream(IncomingFileTransfer.java:194)
05-04 21:54:21.192 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.access$100(IncomingFileTransfer.java:58)
05-04 21:54:21.192 9864-9924/com.example.myapplication1 W/System.err: at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$1.run(IncomingFileTransfer.java:132)
05-04 21:54:21.192 9864-9924/com.example.myapplication1 W/System.err: at java.lang.Thread.run(Thread.java:818)

确保两个用户都可以相互连接,如果他们在NAT后面,则使用Socks5代理来促进传输。确保两个用户都可以相互连接,如果他们在NAT后面,则使用Socks5代理来促进传输。