asmck

来源:互联网 发布:看电影用什么软件 编辑:程序博客网 时间:2024/05/18 13:25

发(出)

OutgoingFileTransfer outgoingFileTransfer = fileTransferManager.createOutgoingFileTransfer("eaglelink@eaglelink.cn/Spark 2.6.3");

File file = new File(filepath);

//以上是准备

outgoingFileTransfer.sendFile(file, "Sending");

outgoingFileTransfer>>追源码第一次

outputStream = negotiateStream(file.getName(), file.length(), description);

negotiateStream>>再

StreamNegotiator streamNegotiator = negotiator.negotiateOutgoingTransfer(>>

return getOutgoingNegotiator(getStreamMethodField(response>>

 if (isByteStream && isIBB) {return new FaultTolerantNegotiator 

if (isByteStream) {return byteStreamTransferManager.createNegotiator()

InputStream inputStream= new FileInputStream(file);
writeToStream(inputStream, outputStream);



收(进)


private FileTransferRequest request;

fileTransferManager.addFileTransferListener(new FileTransferListener(){
@Override
public void fileTransferRequest(FileTransferRequest prequest) {
System.out.println("The file received from: " + prequest.getRequestor());
file = new File("mnt/sdcard/" + prequest.getFileName());
request = prequest;
handler.sendEmptyMessage(5);
}
});

IncomingFileTransfer incomingFileTransfer= request.accept();

//以上是准备

incomingFileTransfer.recieveFile(file)

incomingFileTransfer.recieveFile(file)内部>原理>开启线程

inputStream = negotiateStream();

StreamNegotiator streamNegotiator = negotiator.selectStreamNegotiator(recieveRequest);>>>

return getNegotiator(getStreamMethodField(request.getStreamInitiation().getFeatureNegotiationForm()))

outputStream = new FileOutputStream(file);

writeToStream(inputStream, outputStream);






原创粉丝点击