java tcp服务器给多个客户端_java socket 实现多个客户端向服务器上传文件

packagecn.com.test09;importjava.io.DataInputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;public classt10 {public static voidmain(String[] args) {new ServerO("F:\\",8080);

}

}classServerO {privateString path;private intport;privateServerSocket ss;public ServerO(String s, intp) {this.path =s;this.port =p;try{

ss= newServerSocket(port);while (true) {

Socket soc=ss.accept();new Thread(newOOOO(soc,path)).start();

}

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();try{

ss.close();

}catch(IOException e1) {//TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

}class OOOO implementsRunnable {privateSocket soc;privateString path;publicOOOO(Socket soc,String pa) {this.soc =soc;this.path=pa;

}public void setFile(String name,byte[] b,inti){try{

FileOutputStream bos= new FileOutputStream(new File(path+name),true);

bos.write(b,0,i);

bos.close();

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

System.out.println("保存文件出错");

}

}

@Overridepublic voidrun() {//TODO Auto-generated method stub

DataInputStream in = null;

String name;byte[] b= new byte[1024];inti;try{

in= newDataInputStream(soc.getInputStream());

name=in.readUTF();while((i=in.read(b))!=-1){

setFile(name, b ,i);

}

}catch(IOException e) {//TODO Auto-generated catch block

System.out.println("run中出现异常");

e.printStackTrace();

}finally{try{

in.close();

soc.close();

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值