A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fengkuangjava 初级黑马   /  2016-3-30 13:34  /  392 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package lianxi;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class work5Fuwu {
/**
  * 使用socket编写一个Java程序,要求:客户端上传图片到服务端,服务端接收完毕后存放到本地,
  * 并发送“接收完毕”的信息到客户端,客户端在控制台显示接收的情况
  */
public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  ServerSocket socket=new ServerSocket(45454);
  System.out.println("等待客户端连接......");
  Socket so=socket.accept();//创建通道
  InetAddress intetAddress=so.getInetAddress();//连接的客户端地址
  System.out.println("连接的客户端地址:"+intetAddress.getHostAddress());//打印地址
  InputStream in=so.getInputStream();//创建输入流准备接受数据
  FileOutputStream fos=new FileOutputStream("p3.ico");
  int len=0;
  byte[] b=new byte[1024];
  while((len=in.read(b))!=-1){//读取传来的数据
   fos.write(b);
  }
  so.shutdownInput();
  OutputStream out=so.getOutputStream();//创建输出流
  //FileWriter out=so.FileWriter();
  out.write("服务器发送的接收完毕了".getBytes());//传出数据
//  
  out.close();//关闭流
  fos.close();
  in.close();
  
}
}


package lianxi;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class work5KeHu {
/**
  * @param args
  * @throws IOException
  * @throws UnknownHostException
  */
public static void main(String[] args) throws UnknownHostException, IOException {
//++++++++++++++客户端++++++++++++++++++++++++
  Socket socket =new Socket("192.168.0.108", 45454);
  System.out.println("以连接到服务器端");
  OutputStream out=socket.getOutputStream();//输出流
  FileInputStream fin=new FileInputStream("panda.ico");//从本地获取图片
  int len=0;
  byte[]bytes=new byte[1024];
  while((len=fin.read(bytes))!=-1){//读取图片
   out.write(bytes, 0, len);//传到服务器
  }
  socket.shutdownOutput();
  InputStream in=socket.getInputStream();//准备接收数据
  InputStreamReader isr=new InputStreamReader(in);
  char[] chars=new char[1024];
   len=0;
   while((len=isr.read(chars))!=-1){//接收数据
    System.out.println(new String(chars,0,len));
   }
  
  
  
  
  in.close();
  fin.close();
  out.close();
  
  
}
}


1 个回复

倒序浏览
程序结果大家看看

捕获.PNG (7.55 KB, 下载次数: 3)

捕获.PNG

服务器.PNG (63.59 KB, 下载次数: 13)

服务器.PNG

客户端.PNG (39.95 KB, 下载次数: 3)

客户端.PNG
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马