zoukankan      html  css  js  c++  java
  • JAVA笔记15__TCP服务端、客户端程序 / ECHO程序 /

    /**
     * TCP:传输控制协议,采用三方握手的方式,保证准确的连接操作。
     * UDP:数据报协议,发送数据报,例如:手机短信或者是QQ消息。
     */
    
    /**
     * TCP服务器端程序
     */
    public class Main {
        public static void main(String[] args) {
           try {
                ServerSocket s1 = new ServerSocket(57712); //创建一个服务器端socket
                System.out.println("服务器已启动,正在等待连接中....");
                Socket s = s1.accept(); //等待客户端连接,会阻塞
                String info = "Hello World ---
    ";
                //构造一个字节输出流
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
                bw.write(info);
                bw.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    /**
     * TCP客户端程序
     */
    public class ClientDemo {
        public static void main(String[] args){
            try {
                System.out.println("good");
                //创建一个客户端的socket对象(IP/主机名,端口号)
                Socket s1 = new Socket("172.31.150.27",57712);
                System.out.println("与服务器连接成功");
                //构造一个字符输入流
                BufferedReader br = new BufferedReader(new InputStreamReader(s1.getInputStream()));
                String info = br.readLine();
                System.out.println(info);
                br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    /**
     * ECHO服务器端程序
     */
    public class Main {
        public static void main(String[] args) throws IOException {
           ServerSocket s = new ServerSocket(12347);
           System.out.println("Server has started. is Waiting....");
           boolean flag = true;
           while(flag){
               System.out.println("is waiting for connection....");
               Socket s0 = s.accept();
               System.out.println("客户端IP:"+s0.getInetAddress().getHostAddress()+" 已连接!");
               //获取输入输出流
               BufferedReader br = new BufferedReader(
                       new InputStreamReader(s0.getInputStream()));
               PrintStream ps = new PrintStream(
                       new BufferedOutputStream(s0.getOutputStream()));
               boolean bool = true; //循环接收数据
               while(bool){
                   String info = br.readLine();
                   if(info==null || "bye".equals(info)){
                       bool = false;
                   }else{
                       System.out.println(info);
                       ps.println("echo:"+info);
                       ps.flush();
                   }
               }
               ps.close();
               br.close();
           }
        }
    }
    /**
     * ECHO客户端程序
     */
    public class ClientDemo {
        public static void main(String[] args) throws IOException{
            //创建一个客户端的socket对象(IP/主机名,端口号)
            Socket s0 = new Socket("172.31.150.27",12347);
            System.out.println("与服务器连接成功");
            Scanner input = new Scanner(System.in);
            boolean flag = true;
            PrintStream ps = new PrintStream(
                       new BufferedOutputStream(s0.getOutputStream()));
            BufferedReader br = new BufferedReader(
                       new InputStreamReader(s0.getInputStream()));
            while(flag){
                System.out.println("请输入:");
                String info = input.next();
                if("bye".equals(info)){
                    flag = false;
                }else{
                    ps.println(info);
                    ps.flush();
                    System.out.println(br.readLine());
                }
            }
            br.close();
            ps.close();
        }
    }
  • 相关阅读:
    Nginx使用
    nginx常见配置详解
    配置yum源
    nginx常见使用方式和日志功能
    SpringCloud学习篇《一》
    myeclipse的各种背景:黑色,护眼,欢迎围观
    java基础二 <流程控制语句, 方法,数组,java内存结构> 未完待续...
    fastjson解析超长json串以及转成list,map等方法实例
    Linux下权限的修改-JDK的配置-文件的常见操作
    java面试基础大全,绝对经典<126-170><转>
  • 原文地址:https://www.cnblogs.com/fish7/p/4177412.html
Copyright © 2011-2022 走看看