zoukankan      html  css  js  c++  java
  • Socket编程模仿上传本地图片,并且响应客户端

    服务端:

    package com.huan.yu1;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class ServerSokcetDemo1 implements Runnable {
    
    	private Socket s;
    
    	public ServerSokcetDemo1(Socket s) {
    		super();
    		this.s = s;
    	}
    
    	/**
    	 * 定义一个线程
    	 */
    
    	@Override
    	public void run() {
    		// 读取客户端的数据进行上传
    		int count = 1;
    		String ip = s.getInetAddress().getHostAddress();
    		System.err.println(ip + "---connect");
    		// 读取客户端发过来得数据
    		try {
    			InputStream is = s.getInputStream();
    			// 定义目的地
    			byte[] b = new byte[1024 * 4];
    			File file = new File("F://ppp");
    			if (!file.exists()) {
    				file.mkdir();
    			}
    			// 重新定义上传文件的路径和名称
    			File child = new File(file, ip + "00" + count + ".jpg");
    			// 如果存在就重新创建
    			while (child.exists()) {
    				child = new File(file, ip + "00" + count + ".jpg");
    			}
    			FileOutputStream fos = new FileOutputStream(child);
    			int len = 0;
    			while ((len = is.read(b)) != -1) {
    				fos.write(b);
    			}
    
    			OutputStream out = s.getOutputStream();
    
    			out.write("上传成功".getBytes());
    			fos.close();
    			s.close();
    			
    
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    
    	}
    
    	
    	/**
    	 * 客户端上传数据
    	 * 
    	 * @throws IOException
    	 */
    	@SuppressWarnings("resource")
    	public static void main(String[] args) throws IOException {
    		ServerSocket ss = new ServerSocket(10666);
    		while (true) {
    			Socket s = ss.accept();
    			new Thread(new ServerSokcetDemo1(s)).start();;
    
    		}
    
    	}
    
    }
    

      

    客户端:

    package com.huan.yu1;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    public class ClientSocket {
    
    	/**
    	 * 客户端
    	 * 
    	 * @throws IOException
    	 * @throws UnknownHostException
    	 */
    	@SuppressWarnings("resource")
    	public static void main(String[] args) throws UnknownHostException, IOException {
    		// 请求服务,并且要将数据上传上去
    		//本地ip
    		Socket s = new Socket("192.168.86.1", 10666);
    		FileInputStream fis = new FileInputStream("F://picture//1920.png");
    		OutputStream os = s.getOutputStream();
    		byte[] b = new byte[1024 * 4];
    
    		int len = 0;
    		while ((len = fis.read(b)) != -1) {
    			os.write(b);
    		}
    		// 告诉服务器读取完毕
    		s.shutdownOutput();
    		// 读取服务器的数据
    		InputStream is = s.getInputStream();
    		byte[] b1 = new byte[1024 ];
    		int len1=is.read(b1);
    		String str=new String(b1,0,len1);
    		System.err.println(str);
    		
    		fis.close();
    		s.close();
    		is.close();
    		
    		
    	}
    
    }
    

      

  • 相关阅读:
    【并发编程】并发编程随笔索引
    主题记录
    Java技术栈思维导图
    【ES 6.5.4 】ElasticSearch知识点
    Logstash Oracle同步设置
    【ES】【Reference 7.8 译】官方文档Mapping说明
    【ES】【Java High Level REST Client】官方索引和文档操作指导
    【ES】JAVA集成ES与基本操作及官方查询指导
    【实践】Effective Java实践总结
    【MyBatis】Spring集成MyBatis示例
  • 原文地址:https://www.cnblogs.com/liushisaonian/p/8595285.html
Copyright © 2011-2022 走看看