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


  • 相关阅读:
    HTTP状态码及其含义
    c和python解决各种字符串反转问题的不同思路
    Python找出一串字符中出现最多的字符
    3个基本算法的实现技巧
    一种字符串搜索方法
    数据库开发经典总结
    apt、dpkg参数整理
    Python集合(set)类型的操作
    Python和Decorator(装饰器)模式
    Git使用基础
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299730.html
Copyright © 2011-2022 走看看