package FileTran; |
import java.io.File; |
import java.io.FileFilter; |
import java.io.FileInputStream; |
import java.io.FileNotFoundException; |
import java.io.IOException; |
import java.io.InputStream; |
import java.io.ObjectOutputStream; |
import java.net.Socket; |
import java.net.UnknownHostException; |
import java.util.ArrayList; |
import java.util.List; |
import javax.swing.JFileChooser; |
import javax.swing.JOptionPane; |
import MyFrame.Myframe; |
public class FileClient extends Thread { |
private Socket client = null ; |
private ObjectOutputStream out = null ; |
private InputStream in = null ; |
private Myframe mf; |
private String msg; |
private String ip; |
private String fileload ; |
private JFileChooser jfc; |
private File fi; |
public FileClient(Myframe mf) { |
this .mf = mf; |
this .msg = mf.getPane().getContendjt().getText(); |
this .ip = (String) mf.getPane().getIpjt().getSelectedItem(); |
} |
public void run() { |
this .jfc= new JFileChooser(); |
this .jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); |
int reval= this .jfc.showOpenDialog(mf); |
if (reval==JFileChooser.APPROVE_OPTION){ |
fi= this .jfc.getSelectedFile(); |
} else if (reval== 1 ){ |
return ; |
|
} else { |
JOptionPane.showMessageDialog(mf, "操作有误请稍后再试!!" ); |
return ; |
} |
this .mf.getPane().getContendjt().setText(msg + "发送中.......\n" ); |
String[] file = fi.toString().split( "\\\\" , - 1 ); |
byte [] b = new byte [ 10240 ]; |
try { |
List li = new ArrayList(); |
client = new Socket( this .ip, 9500 ); |
in = new FileInputStream( this .fi); |
out = new ObjectOutputStream(client.getOutputStream()); |
int l = 0 ; |
int len = 0 ; |
byte [] a = null ; |
while ((l = in.read(b)) != - 1 ) { |
a = new byte [ 1024 ]; |
a = b.clone(); |
len = l; |
li.add(a); |
} |
|
li.add(len); |
li.add(file[file.length - 1 ]); |
|
out.writeObject(li); |
out.flush(); |
this .mf.getPane().getContendjt().setText(msg + "文件发送完毕.....\n" ); |
} catch (UnknownHostException e) { |
// TODO Auto-generated catch block |
JOptionPane.showMessageDialog( null , "没有连接到服务器..." ); |
return ; |
} catch (FileNotFoundException f) { |
JOptionPane.showMessageDialog( null , "文件没有找到,请确认..." ); |
} catch (IOException e) { |
// TODO Auto-generated catch block |
// e.printStackTrace(); |
JOptionPane.showMessageDialog( null , "输入有误!!" ); |
return ; |
} finally { |
if (out != null ) { |
try { |
out.close(); |
} catch (IOException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
if (client != null ) { |
try { |
client.close(); |
} catch (IOException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
if (in != null ) { |
try { |
in.close(); |
} catch (IOException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
} |
} |
} |
} |
//源代码片段来自云代码http://yuncode.net |
|