第一章 java网络编程入门_Echo

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一章 java网络编程入门_Echo相关的知识,希望对你有一定的参考价值。

//服务器端程序  EchoServer.java

import java.io.*;
import java.net.*;
public class EchoServer {
  private int port=8000;
  private ServerSocket serverSocket;

  public EchoServer() throws IOException {
    serverSocket = new ServerSocket(port);
    System.out.println("服务器启动");
  }

  public String echo(String msg) {
    return "echo:" + msg;
  }

  private PrintWriter getWriter(Socket socket)throws IOException{
    OutputStream socketOut = socket.getOutputStream();
    return new PrintWriter(socketOut,true);
  }
  private BufferedReader getReader(Socket socket)throws IOException{
    InputStream socketIn = socket.getInputStream();
    return new BufferedReader(new InputStreamReader(socketIn));
  }

  public void service() {
    while (true) {
      Socket socket=null;
      try {
        socket = serverSocket.accept();  //等待客户连接
        System.out.println("New connection accepted "
                        +socket.getInetAddress() + ":" +socket.getPort());
        BufferedReader br =getReader(socket);      //du qu
        PrintWriter pw = getWriter(socket);

        String msg = null;
        while ((msg = br.readLine()) != null) {
          System.out.println(msg);
          pw.println("--------------这个是从服务器上传过来的数据--------------");
          if (msg.equals("bye")) //如果客户发送的消息为“bye”,就结束通信
            break;
        }
      }catch (IOException e) {
         e.printStackTrace();
      }finally {
         try{
           if(socket!=null)socket.close();  //断开连接
         }catch (IOException e) {e.printStackTrace();}
      }
    }
  }

  public static void main(String args[])throws IOException {
    new EchoServer().service();
  }
}
//客户端程序  EchoClient.java

import java.net.*;
import java.io.*;
import java.util.*;
public class EchoClient {
  private String host="localhost";
  private int port=8000;
  private Socket socket;
 
  public EchoClient()throws IOException{
     socket=new Socket(host,port);  
  }
  public static void main(String args[])throws IOException{
    new EchoClient().talk();
  }
  private PrintWriter getWriter(Socket socket)throws IOException{
    OutputStream socketOut = socket.getOutputStream();
    return new PrintWriter(socketOut,true);
  }
  private BufferedReader getReader(Socket socket)throws IOException{
    InputStream socketIn = socket.getInputStream();
    return new BufferedReader(new InputStreamReader(socketIn));
  }
  public void talk()throws IOException {
    try{
      BufferedReader br=getReader(socket);
      PrintWriter pw=getWriter(socket);
      BufferedReader localReader=new BufferedReader(new InputStreamReader(System.in));
      String msg=null;
      System.out.println("$$$$$$$$$$$$$$$$$$$");
      while((msg=localReader.readLine())!=null){

        pw.println(msg+"aaaaaaaaaaaaa");     //  传给服务器的数据
        Thread.sleep(3000);
        System.out.println("br.readLine()"+br.readLine());  //读取服务器的数据

        if(msg.equals("bye"))
          break;
      }
    }catch(Exception e){
       e.printStackTrace();
    }finally{
       try{socket.close();}catch(IOException e){e.printStackTrace();}
    }
  }
}


/****************************************************
 * 作者:孙卫琴                                     *
 * 来源:<<Java网络编程精解>>                       *
 * 技术支持网址:www.javathinker.org                *
 ***************************************************/


以上是关于第一章 java网络编程入门_Echo的主要内容,如果未能解决你的问题,请参考以下文章

第一章 java网络编程入门_mailClient.java

第一章 java网络编程入门_HTTPClient.java

第一章 java网络编程入门_Receiver_Sender

第一章 java网络编程入门_Simple_test_ConnectException

Python-入门基础-《Python编程-从入门到实践》-第一章

第一章 Python入门