有这样一个需求:

客户端给读物段发送文本,服务端会将文本转换为大写再返回客户端

而且客户端可以不断的进行文本转换,当客户端输入over时,转换结束。

 

分析:

既然是操作设备上的数据,那么久可以使用io技术,并按照io的操作规律来思考

源:键盘录入

目的:网络设备、网络输出流

而且操作的是文本数据,可以选择字符流

 

//客户端实现: 

package com.shindo.java.tcp;
import java.io.*;
import java.net.*;
/**
 * 步骤:
 * 1、建立服务
 * 2、获取键盘输入
 * 3、将数据发送给服务端
 * 4、获取服务端返回的数据
 * 5、结束,关闭资源
 * 都是文本数据,可以使用字符流进行操作,同时提高效率,加入缓冲
 */
public class TransClient {
    public static void main(String[] args){
        try {
            Socket s = new Socket("127.0.0.1",11013);
            //定义读取键盘输入的输入流对象
            BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
            
            //定义目的,将数据写入到Socket的输出流,发给服务端
            //方法1:
//            BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            //方法2:第二个参数为自动刷新的标志,true为自动刷新
            PrintWriter out = new PrintWriter(s.getOutputStream(),true);
            
            //定义一个Socket的读取流,读取服务端返回的大写信息
            BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
            
            String line = null;
            while((line = bufr.readLine()) != null){
                if("over".equals(line)) break;
    
                //方法1:
//                bufOut.write(line);
//                bufOut.newLine();//为了让流结束
//                bufOut.flush();//刷新缓冲区
                
                //方法2:
                out.println(line);
                
                String strBack = bufIn.readLine();
                System.out.println("服务端响应:" + strBack );
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
}
View Code

相关文章:

  • 2022-12-23
  • 2021-06-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-05
  • 2021-04-23
  • 2022-12-23
猜你喜欢
  • 2021-12-31
  • 2021-12-29
  • 2021-10-09
  • 2022-02-18
  • 2021-11-15
  • 2022-12-23
相关资源
相似解决方案