• Socket通信1.0


    Socket通信1.0

    服务器端:

    	package page;
    
    	import java.io.BufferedReader;
    	import java.io.IOException;
    	import java.io.InputStreamReader;
    	import java.io.PrintStream;
    	import java.net.ServerSocket;
    	import java.net.Socket;
    	import java.net.UnknownHostException;
    
    	public class Server {
    
     	public static void main(String[] args) throws UnknownHostException {
    	  Socket socket = null;
    	  ServerSocket serverSocket=null;
    	  try {
    	   while(true){
    		serverSocket= new ServerSocket(4242);//创建绑定端口8000的对象ServerSocket
    	    System.out.println("服务器已经启动");
    	    socket = serverSocket.accept();//接收客户端请求,得到Socket
    	    System.out.println("有客户端连接过来了");
    	    BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//创建带缓冲的字符读入流
    	    String sr = br.readLine();//读取一个文本行
    	    PrintStream ps = new  PrintStream(socket.getOutputStream());//此输出流不会抛出异常
    	    ps.println(new StringBuffer(sr).reverse());//将反转后的字符串打印到客户端屏幕上 
    	   }
    	   
    	  } catch (IOException e) {
    	   e.printStackTrace();
    	  }finally{
    	   try {
    	   if(socket != null)
    	     socket.close();
    	   if(serverSocket != null)
    		   serverSocket.close();
    	    } catch (IOException e) {
    	     e.printStackTrace();
    	   }
    	  }
    	 }
    
    	}
    

    客户端:

    	package page;
    
    	import java.io.BufferedReader;
    	import java.io.IOException;
    	import java.io.InputStreamReader;
    	import java.io.PrintStream;
    	import java.net.InetAddress;
    	import java.net.Socket;
    	import java.util.Scanner;
    
    	public class Client {
    
     	public static void main(String[] args){
    	  Socket socket = null;
    	  try {
    	   socket = new Socket("localhost",4242);//创建Socket, 请求服务端
    	   System.out.println("客户端已经连接上");
    	   while(true){
    	    BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    	    PrintStream ps = new PrintStream(socket.getOutputStream());
    	    Scanner scanner = new Scanner(System.in);   // 创建Scanner
    	    System.out.println("请输入一个字符串6:");    // 给出提示输入
    	    String line = scanner.nextLine();     // 从键盘输入读取一行
    	    ps.println(line);//发送到服务端
    	    ps.flush();
    	    if((socket.getInputStream().available())==0)
    	    System.out.println(br.readLine());// 读取服务端发回的字符串, 打印  
     	   }
    	  } catch (Exception e){
    	   e.printStackTrace();
    	  }finally{
    	   if(socket != null){
    	    try {
    	     socket.close();
    	    } catch (IOException e) {
    	     e.printStackTrace();
    	    }
    	   }
    	  }
    	 }
    	}
  • 相关阅读:
    【Oracle/MyBatis】Oracle分页语句在MyBatis的Mapper.xml中的实际运用
    ZT:ResultSet的getDate()、getTime()和getTimestamp()比较
    【Oracle】使用sqlldr命令行从csv文件获得数据导入Oracle数据库某表中,如果有数据包括逗号,该怎么办?
    如何在 Linux 中以脚本模式运行 Top
    CentOS 8 安装 Caddy Web服务器
    CentOS下Jenkins安装&&Jenkins端口修改不生效踩坑记录
    Windows 服务器禁用 SSL 2 和 SSL 3 协议 itprobie
    C# Task 使用 WhenAll 和 WaitAll 需要注意的坑
    C# 使用 protobuf 手动生成
    Go gin 接入 prometheus
  • 原文地址:https://www.cnblogs.com/renxiuxing/p/9362186.html
Copyright © 2020-2023  润新知