JavaSE_网络编程_TCP_练习1

客户端代码:

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 TCP_Client_Demo2 {
  public static void main(String[] args) throws UnknownHostException, IOException {
    /*方法说明:
     *练习1:(单线程)客户端键盘输入小写字母,
     *发送给服务端,服务端将字母转成大写字母,
     *再发回给客户端,客户端输入over结束转换!
     */
    method_1();
  }
  private static void method_1() throws UnknownHostException, IOException {
    /*整个思路:
     * 1,需要先有socket端点。
     * 2,客户端的数据源:键盘。
     * 3,客户端的目的:socket中的输出流(字节流).
     * 4,接收服务端的数据,源:socket。
     * 5,将数据显示在打印出来:目的:控制台.
     * 6,在这些流中操作的数据,都是文本数据。
     * 客户端:
     * 1,创建socket客户端对象。
     * 2,获取键盘录入。
     * 3,将录入的信息发送给socket输出流。
     * 4,读取socket输入流并显示服务端发回的一行大写字母。
     */
    //1,创建socket客户端对象。
    Socket s = new Socket("127.0.0.1",10004);
    //2,获取键盘录入。
    BufferedReader bufr  =
        new BufferedReader(new InputStreamReader(System.in));
    //3,socket输出流。
//    new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    //PrintWriter和True同在
    PrintWriter out = new PrintWriter(s.getOutputStream(),true);
    //4,socket输入流,读取服务端返回的大写数据
    BufferedReader bufIn  =
        new BufferedReader(new InputStreamReader(s.getInputStream()));
    String line = null;
    while((line=bufr.readLine())!=null){
      if("over".equals(line))
        break;
      out.println(line);
      //读取并显示服务端发回的一行大写字母。
      System.out.println(bufIn.readLine());
    }
    s.close();//植入结束标记
  }
}


服务端代码:


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 TCP_Server_Demo2 {
  public static void main(String[] args) throws IOException {
    method_1();
  }
  private static void method_1() throws IOException {
    /*
     * 1,serversocket服务。
     * 2,获取socket对象。
     * 3,源:socket,读取客户端发过来的需要转换的数据。
     * 4,目的:显示在控制台上。
     * 5,将数据转成大写发给客户端。 
     */
    ServerSocket ss = new ServerSocket(10004);
    //2,获取socket对象。
    Socket s = ss.accept();
    String ip = s.getInetAddress().getHostAddress();
    System.out.println(ip+"......connected");
    //3,获取socket读取流,并装饰。 
    BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
    //4,获取socket的输出流,并装饰。PrintWriter和true同在
    PrintWriter out = new PrintWriter(s.getOutputStream(),true);
    String line = null;
    while((line=bufIn.readLine())!=null){
      System.out.println(line);
      out.println(line.toUpperCase());
    }
    s.close();
    ss.close();
  }
}


你可能感兴趣的:(java,tcp,socket,网络编程)