Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 665|回复: 0

ServerSocket 。。。Socket多用户上传

[复制链接]

该用户从未签到

发表于 2011-10-9 19:07:51 | 显示全部楼层 |阅读模式
package com.renxing.r0043_AllUserThreader;


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
* @author Administrator
*
*多用户服务端
*/
class uploadingPicThread implements Runnable
{
private Socket  s;
private int count;

public uploadingPicThread(Socket  s,int count)
{
  this.s=s;
  this.count=count;
}

@Override
public void run()
{
  //当运行相关的方法的时候我们就进行相关的操作
   //什么操作
  //上传图片   ----》 字节
  
  try {
   File  file=new File("E:\\"+s.getInetAddress().getHostAddress()+"("+(count+"")+")"+".jpg");
   
   if(!file.exists())
   {
   file.createNewFile();
   }
   BufferedInputStream bis=new BufferedInputStream(s.getInputStream());
   
   BufferedOutputStream bos2=new BufferedOutputStream(new FileOutputStream(file));
   byte[] bys1=new byte[1024*1024];
   int num1;
   while((num1=bis.read(bys1))!=-1){
   
    bos2.write(bys1);
    bos2.flush();
   }
   bis.close();
   bos2.close();
   System.out.println("Server end");
   s.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}


}
public class allSocketDemo
{
public static int count =0;
public static void main(String[] args) throws IOException
{
  ServerSocket ss=new ServerSocket(10000);
  //服务器监听 10000端口
  
  while(true)
  { Socket s=ss.accept();
   new Thread(new uploadingPicThread(s,count++)).start();
  }
  
  
}


}









package com.renxing.r0043_AllUserThreader;

import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

//对于 单个客户端来讲
/**
* 1图形界面问题
* 2线程问题
* 3.socket 的代码问题
*/
public class SimpleSocketDemo
{
public Frame f;
public  MenuBar mb;
Menu m;
MenuItem mi;

public SimpleSocketDemo(String frameName)
{
  f=new Frame(frameName);
  mb=new MenuBar();
  m=new Menu("操作");
  mi=new MenuItem("上传图片");
  f.setSize(102,313);
  f.setLayout(new FlowLayout());
  f.setMenuBar(mb);
  mb.add(m);
  m.add(mi);
  myEvent();
  f.setVisible(true);
  
}
public  void myEvent()
{
  f.addWindowListener(new WindowAdapter() {

   @Override
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
   
  });
  mi.addActionListener(new ActionListener()
  {

   @Override
   public void actionPerformed(ActionEvent e)
   {  
     if(e.getSource()==mi)
     {
      FileDialog fd=new FileDialog(f,"请选择图片",FileDialog.LOAD);
      fd.setVisible(true);
      String fileName=fd.getFile();
      String dir =fd.getDirectory();
      String allfileName=dir+fileName;
      File file=new File(allfileName);
      
      Socket s=null;
      
      
      
      if(fileName.endsWith("jpg"))
      {try {
        s=new Socket("localhost",10000);
     BufferedInputStream bis1=new BufferedInputStream(new FileInputStream(file));
     BufferedOutputStream bos1 =new BufferedOutputStream(s.getOutputStream());
     byte [] bys=new byte[1024*1024];
     int num=0;
     while((num=bis1.read(bys))!=-1)
     {
      bos1.write(bys);
      bos1.flush();
     }
   
     
       } catch (UnknownHostException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
       } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
       }
       finally
       {
        try {
         s.shutdownOutput();
         System.out.println("centil end");
         System.out.println("上传成功!");
         s.close();
        } catch (IOException e1) {
         // TODO Auto-generated catch block
         e1.printStackTrace();
        }
       }
      
       return;
      }
      System.out.println("上传失败!");
     }
     
   }
   
  
  });
}


public static void main(String[] args)
{
  new SimpleSocketDemo ("abc");
}

}






不整理了 直接睡觉!~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-29 02:41 , Processed in 0.426923 second(s), 48 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表