没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
文件传输源代码
package fileTrans;
import java.io.IOException;
import java.net.Socket;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JOptionPane;
public class AcceptThread extends Thread {
FileReciveThread fileReciveThread;
List<String> pathList;
List<Long> fileLengthList;
int i=0;
public AcceptThread() {
super();
// TODO Auto-generated constructor stub
pathList=new LinkedList<String>();
fileLengthList=new LinkedList<Long>();
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
while(true){
try {
Socket s=Tool.getServerSocket().accept();
fileReciveThread =new FileReciveThread(s,
pathList.get(i),fileLengthList.get(i));
i++;
fileReciveThread.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
JOptionPane.showMessageDialog(null,
MessageTypeInterface.TCP_SERVER_PORT+"端口被占用!");
}
}
}
public void addSavePath(String path){
pathList.add(path);
}
public void addFileLength(Long fileLength){
fileLengthList.add(fileLength);
}
}
package fileTrans;
import java.awt.List;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JOptionPane;
public class FileReciveThread extends Thread {
private Socket socket=null;
private String savePath=null;
private Long fileLength;
private Long recivedLength;
public FileReciveThread(Socket socket,String savePath,Long fileLength){
this.socket=socket;
this.savePath=savePath;
this.fileLength=fileLength;
recivedLength=new Long(0);
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try {
long st=System.currentTimeMillis();
BufferedInputStream in=new BufferedInputStream(socket.getInputStream());
BufferedOutputStream out=new BufferedOutputStream(new
FileOutputStream(savePath));
byte[] b=new byte[1000];
int a=0;
new FileTransProcessThread(fileLength, this).start();
while((a=in.read(b))>0){
out.write(b, 0, a);
recivedLength+=a;
}
in.close();
out.close();
socket.close();
long l=System.currentTimeMillis();
JOptionPane.showMessageDialog(null, "恭喜!\n"+savePath+"\n 接收完毕!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public Long getRecivedLength(){
return recivedLength;
}
}
package fileTrans;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import javax.swing.JOptionPane;
public class FileSendThread extends Thread {
private String sendFilePath=null;
private InetSocketAddress serverSocket=null;
private Long fileLength;
private Long sendedLength;
public FileSendThread(String sendFilePath, InetSocketAddress serverSocket) {
super();
this.sendFilePath = sendFilePath;
this.serverSocket = serverSocket;
File file=new File(sendFilePath);
if(file.exists()){
fileLength=file.length();
}else{
fileLength=new Long(0);
}
sendedLength=new Long(0);
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
long st=System.currentTimeMillis();
try {
Socket s=new Socket();
s.connect(serverSocket);
BufferedInputStream in=new BufferedInputStream(new
FileInputStream(sendFilePath));
BufferedOutputStream out=new BufferedOutputStream(s.getOutputStream());
byte[] b=new byte[1000];
int a=0;
new FileTransProcessThread(fileLength, this).start();
while((a=in.read(b))>0){
out.write(b, 0, a);
sendedLength+=a;
}
in.close();
out.close();
s.close();
剩余18页未读,继续阅读
naveu
- 粉丝: 6
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页