/** */
/**
* 文件传输,用了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;
}
}
* 文件传输,用了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;
}
}