• 上机题目(0基础)- Java网络操作-Socket实现client和server端通信二(Java)


        上一节实现了client像server端发送请求。本节将实现server端向client回传信息。实现原理非常easy,在原来的基础上。在server端实现输出流,在client实现输入流就可以,详细代码例如以下:

    server端:

    package com.socket.demo;
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Server {
    	public static void main(String[] args) {
    		try{
    			ServerSocket serverSocket=new ServerSocket(8888);
    			System.out.println("----------------服务端执行。開始监听请求----------------");
    			Socket socket=serverSocket.accept();//開始监听
    			InputStream inputStream=socket.getInputStream();
    			BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
    			//获取请求内容
    			String info;
    			while ((info=bufferedReader.readLine())!=null) {
    				System.out.println("我是server端。client请求为:"+info);
    				
    			}
    			
    			socket.shutdownInput();
    			//server端向client回传信息
    			OutputStream outputStream=socket.getOutputStream();
    			PrintWriter printWriter=new PrintWriter(outputStream);
    			printWriter.write("client您好。我已经接受到你的信息");
    			printWriter.flush();
    			//关闭资源
    			printWriter.close();
    			outputStream.close();
    			bufferedReader.close();
    			inputStream.close();
    			socket.close();
    			serverSocket.close();
    			}catch(Exception exception){
    				
    			}
    
    	}
    	
    }
    
    client:

    package com.socket.demo;
    
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    
    public class Client {
    	public static void main(String[] args) {
    		try {
    			//发送到8888端口
    			Socket socket=new Socket("127.0.0.1", 8888);
    			//输出流
    			OutputStream outputStream=socket.getOutputStream();
    			PrintWriter printWriter=new PrintWriter(outputStream);
    			printWriter.write("server端你好,我是client。

    "); printWriter.flush(); socket.shutdownOutput();//这个不能少。!

    !!!。!!。!

    ! //接受server端回传的信息 InputStream inputStream=socket.getInputStream(); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); String info; while ((info=bufferedReader.readLine())!=null) { System.out.println("我是client。server端返回::"+info); } //关闭资源 bufferedReader.close(); inputStream.close(); printWriter.close(); outputStream.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }


    执行实比例如以下:

    server控制台输出:

    相关阅读:
    (十三)学习CSS之两个class连一起隔空格和逗号
    (十二)学习CSS之box-sizing 属性
    (五)学习JavaScript之firstChild 属性
    (四)学习JavaScript之className属性
    (三)学习JavaScript之getElementsByTagName方法
    两张表一对多的连接,取多记录表中最新的一条数据
    oracle 快照
    Linux常用命令大全
    baidu 快递查询API
    oracle 触发器实现主键自增

  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7246720.html
Copyright © 2020-2023  润新知