zoukankan      html  css  js  c++  java
  • Java Socket例程2 Echo

    EchoServer.java

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;

    public class EchoServer{
    public static void main(String args[]) throws IOException{
    ServerSocket serverSocket = null;
    PrintWriter out = null;
    BufferedReader in = null;
    try{
    serverSocket = new ServerSocket(1111);
    }
    catch(IOException e){
    System.err.println("Could not listen on port 1111.");
    System.exit(1);
    }

    Socket incoming = null;

    while(true){
    incoming = serverSocket.accept();
    out = new PrintWriter(incoming.getOutputStream());
    in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
    out.println("Hello!");
    out.println("Enter BYTE to exit");
    out.flush();
    while(true){
    String str = in.readLine();
    if(str == null){
    break;
    }
    else{
    out.println("Echo:"+str);
    out.flush();
    if(str.trim().equalsIgnoreCase("BYE"))
    break;
    }
    }
    out.close();
    in.close();
    incoming.close();
    serverSocket.close();
    }
    }
    }

    EchoClient.java

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;

    public class EchoClient{
    public static void main(String args[]) throws IOException{
    Socket echoSocket = null;
    PrintWriter out = null;
    BufferedReader in = null;
    try {
    echoSocket = new Socket("localhost",1111);
    out = new PrintWriter(echoSocket.getOutputStream(),true);
    in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
    }
    catch(UnknownHostException e){
    System.err.println("Don't know about host:localhost");
    System.exit(1);
    }
    System.out.println(in.readLine());
    System.out.print(in.readLine());
    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
    String userInput;
    while((userInput = stdIn.readLine()) != null){
    out.println(userInput);
    System.out.println("Recv:"+in.readLine());
    }

    out.close();
    in.close();
    echoSocket.close();
    }
    }




  • 相关阅读:
    综述:设计模式的分类及六大原则
    模板方法模式
    工厂模式三部曲之抽象工厂模式
    AI,DM,ML,PR的区别与联系
    delphi ADOCONNECTION异常拦截
    Delphi 10.2.3 精简版自动激活Embarcadero Delphi 10.2.3 v25.0.29899.2631 Lite v14.4
    Delphi使用TADOQuery的RowsAffected属性时需要注意的一个点
    delphi 新版内存表 FDMemTable
    delphi 中Adoquery ,在打开时能否让记录指针不移动? [问题点数:40分,结帖人microd]
    delphi循环校验数据集
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2291067.html
Copyright © 2011-2022 走看看