/* 需求:上传图片 */ /* 客户端: 1、建立服务 2、读取客户端已有数据 3、通过socket输出流,将数据发送到服务端 4、通过socket读取流,读取服务端返回信息 */ import java.io.*; import java.net.*; import java.lang.Exception; class PicClient { public static void main(String[] args) throws Exception { Socket s = new Socket("222.49.250.147",10001); FileInputStream fis = new FileInputStream("C:\1.jpg"); OutputStream os = s.getOutputStream(); byte[] buf =new byte[1024]; int len = 0; while((len = fis.read(buf)) != -1) { os.write(buf,0,len); } //告诉服务端读入完毕 s.shutdownOutput(); //读取服务器端返回 InputStream is = s.getInputStream(); byte [] bufin = new byte[1024]; int num = is.read(bufin); System.out.println(new String(buf,0,num)); fis.close(); s.close(); } } class PicServer { public static void main(String [] args) throws Exception { ServerSocket ss = new ServerSocket(10001); Socket s =ss.accept(); String ip = s.getInetAddress().getHostAddress(); System.out.println(ip + "connected"); InputStream is = s.getInputStream(); FileOutputStream fos = new FileOutputStream("D:\10.png"); byte[] buf =new byte[1024]; int len = 0; while((len = is.read(buf)) != -1) { fos.write(buf,0,len); } //将信息返回给客户端 OutputStream os = s.getOutputStream(); os.write("上传成功".getBytes()); is.close(); fos.close(); os.close(); } }