zoukankan      html  css  js  c++  java
  • 《java入门第一季》之tcp协议下的网络编程c/s实现通信交互

    需求:客户端向服务器发送数据,服务器端收到数据后向客户端返回数据:

    还是使用两台电脑,一台客户端,一台服务器。

    客户端代码:

    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    
    public class ClientDemo {
    	public static void main(String[] args) throws IOException {
    		// 创建客户端Socket对象
    		Socket s = new Socket("192.168.1.105", 9999);//这里的ip是服务器端的IP
    
    		// 获取输出流
    		OutputStream os = s.getOutputStream();
    		os.write("今天天气很好,适合睡觉".getBytes());
    
    		// 获取输入流,获取服务器的反馈
    		InputStream is = s.getInputStream();
    		byte[] bys = new byte[1024];
    		int len = is.read(bys);// 阻塞
    		String client = new String(bys, 0, len);
    		System.out.println("client:" + client);
    
    		// 释放资源
    		s.close();
    	}
    }
    

    服务器端代码:

    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class ServerDemo {
    	public static void main(String[] args) throws IOException {
    		// 创建服务器Socket对象
    		ServerSocket ss = new ServerSocket(9999);
    
    		// 监听客户端的连接
    		Socket s = ss.accept(); // 阻塞
    
    		// 获取输入流
    		InputStream is = s.getInputStream();
    		byte[] bys = new byte[1024];
    		int len = is.read(bys); // 阻塞
    		String server = new String(bys, 0, len);
    		System.out.println("server:" + server);
    
    		// 获取输出流,给客户端反馈。
    		OutputStream os = s.getOutputStream();
    		os.write("数据已经收到".getBytes());
    
    		// 释放资源
    		s.close();
    		// ss.close();
    	}
    }
    


  • 相关阅读:
    程序员这生必须掌握的两种图形
    用一张组织架构图说清楚类和对象
    简单工厂、工厂方法、抽象工厂的比较与分析
    rabbitmq系列(一)初识rabbitmq
    【最新】经典面试100问,附答案
    使用wordPress搭建个人博客
    调试接口你还在用postman吗
    Token ,Cookie、Session傻傻分不清楚?
    你不可不知的自定义注解
    使用aop加解密http接口
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299730.html
Copyright © 2011-2022 走看看