我的聊天/文件传输软件代码(----TransClientSocket代码)

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

}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值