26-网络编程-13-网络编程(TCP协议-练习-文本转换客户端)

/*
 * 【需求】创建一个英文大写转换服务器
 * 客户端键盘输入字母数据,发送给服务端,服务端收到后显示在控制台,并将该数据转成大写反馈给客户端,直到客户端输入over为止
 */

/**
 * 【分析】有客户端,也有服务端,用TCP传输协议完成。
 */

/**
 * 【思路】
 * 客户端:
 * 1.需要先有Socket端点
 * 
 * 2.客户端的数据源:键盘
 * (将键盘输入数据。。。)
 * 
 * 3.客户端的目的:Socket
 * (。。。送给Socket,以便于发送给服务端)
 * 
 * 4.接收服务端的数据,源:Socket
 * (服务端来的数据用Socket接收。。。)
 * 
 * 5.将数据显示再打印出来,目的:控制台
 * (。。。以便于输出到控制台)
 * 
 * 6.在这些流中操作的数据,都是纯文本数据
 * 
 */

/**
 * 转换客户端:
 * 1.创建Socket客户端对象
 * 2.获取键盘录入
 * 3.将录入的信息发送给Socket输出流
 */

package test;

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 TextTransClient {

	public static void main(String[] args) throws UnknownHostException, IOException {

/**
 * 【小习惯】
 * 【流对象名称中凡是带in或者out字样的,都是Socket流,不带的就是一般输入输出流】
 */
		//1.创建Socket客户端对象
		Socket s = new Socket("10.196.19.56",10004);
		
		//2.获取键盘录入
		BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
		
		//3.Socket输出流(直接用打印流完成,直接将数据打印给Socket输出流)
		PrintWriter out = new PrintWriter(s.getOutputStream(),true);//这里传入true是启用自动flush功能
		
		
		//4.Socket输入流,用于读取服务端反馈的数据
		BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//(getInputStream()获取到的是字节流,用转换流InputStreamReader将其转为字符流,方便下面读取操作)
		
		String line = null;
		
		while((line=bufr.readLine())!=null){
			
			if("over".equals(line))
				break;
			
			out.println(line);//将键盘录入的数据一行一行给Socket输出流
			
			//读取服务端反馈的一行大写数据
			String upperStr = bufIn.readLine();
/*
 * 上面客户端向服务端发送一行数据,这里接收一行服务端反馈数据,需求就是客户端发一行字母数据给服务端,服务端反馈大写形式,
 * 所以这里发送和接收代码必须全部写在while内部
 */
			System.out.println(upperStr);
		}
		
		//关闭资源
		s.close();
	}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值