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();
    	}
    }
    


  • 相关阅读:
    vim在插入模式下的粘贴
    关于外语学习的7个“美丽误会”(图)
    美国在线教育的启示:教育领域正在革命
    自动生成计算题
    字符串的截取,分割,替换
    将字符串转成byte,然后再转回来 日期相互转化字符串
    java编写的万年历代码
    小球弹砖块游戏(JAVA)
    随即输入一段字符串,统计出数字,大写字母。小写字母,空格
    邮箱验证信息
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299730.html
Copyright © 2011-2022 走看看