/** */ /** * 文件传输,用了ServerSocket和socket技术 * 发送文件! */ package transSocket; import java.awt. * ; import java.io. * ; import java.net. * ; import javax.swing. * ; public class TransClientSocket extends Thread ... { private Socket socket; private InetAddress address; private int port; private String path; private String desip; public TransClientSocket(String path,String desip)...{ this.desip=desip; this.path=path; jbInit(); } /** *//** * 初始化 */ public void jbInit()...{ try...{ port=8002; address=InetAddress.getByName(desip); socket=new Socket(address,port); } catch(UnknownHostException e)...{ JOptionPane.showMessageDialog(null,"对方没有在线或者网络出现故障请确认后在发" ,"连接问题",JOptionPane.WARNING_MESSAGE); e.printStackTrace(); } catch(IOException e2)...{ JOptionPane.showMessageDialog(null,"对方没有在线或者网络出现故障请确认后在发" ,"连接问题",JOptionPane.WARNING_MESSAGE); e2.printStackTrace(); } } /** *//** * 处理发送文件信息 */ public void run()...{ try...{System.out.println("address= "+address); OutputStream out=socket.getOutputStream(); BufferedOutputStream buff=new BufferedOutputStream(out); String st=this.getPath();System.out.println("st= "+st); File file=new File(st); String fileName=null; if(file.isFile()&&file.exists())...{ fileName=file.getName();System.out.println("fileName= "+fileName); byte b[]=fileName.getBytes(); buff.write(b); byte a[]=" ".getBytes(); buff.write(a); } else JOptionPane.showMessageDialog(null,"此文件是个目录或者不是个合法文件请重新确定你要传送的文件" ,"文件错误",JOptionPane.WARNING_MESSAGE ); ProgressMonitorInputStream pr=new ProgressMonitorInputStream(null,"reading the file",new FileInputStream(file)); ProgressMonitor prog=pr.getProgressMonitor(); prog.setMillisToPopup(100); prog.setMillisToDecideToPopup(1); BufferedInputStream input=new BufferedInputStream(pr); int length=0; while((length=input.available())!=0)...{ byte[] c=new byte[length]; int j=input.read(c,0,c.length); if(j!=-1)...{ buff.write(c); } } input.close(); buff.close(); socket.close(); } catch(IOException e3)...{ e3.printStackTrace(); } } /** *//** * 获得文件的路径 */ public String getPath()...{ return path; }}