Socket之 PrintWriter 与 Scanner的使用

Socket之 PrintWriter 与 Scanner ;
  • 作用:专门用来处理字符串信息的

  • PrintWriter : 高级输出流

  • Scanner : 高级输入流

基本用法

package com.qianfeng.xqc.day0318.socketPrintWriterScanner;
import java.io.File;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class TestPS {

	public static void main(String[] args) throws Exception {

		Socket socket = new Socket();
		
		Scanner scan1 = new Scanner(System.in);//用作键盘录入
		Scanner scan2 = new Scanner(new File("aa.txt"));//用作文件读取
		Scanner scan3 = new Scanner(socket.getInputStream());//网络通信里面去读取对方发给我的信息
		
		scan1.nextLine();//读取键盘录入的信息
		scan2.nextLine();//读取文件里面的信息
		scan3.nextLine();//读取socket流里面的信息(服务端或者客户端发送的)
		
		
		PrintWriter pw1 = new PrintWriter(System.out);
		PrintWriter pw2 = new PrintWriter("aa.txt");
		PrintWriter pw3 = new PrintWriter(socket.getOutputStream());
		
		//使用输出之后一定要flush
		pw1.println("控制台打印");pw1.flush();
		pw2.println("写到文件里面");pw2.flush();
		pw3.println("发送给服务器或者客户端");pw3.flush();
				
	}
}

在socket中应用

服务端

package com.qianfeng.xqc.day0318.socketPrintWriterScanner;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class DemoService {
	public static void main(String[] args) {
		try {
			ServerSocket serverSocket = new ServerSocket(8888);
			System.out.println("服务器启动...");
			
			Socket service = serverSocket.accept();
			
			//读取客户端发来的消息
			Scanner scan = new Scanner(service.getInputStream());			
			String msg = scan.nextLine();
			System.out.println("客户端说:" + msg);
			
			//发送消息给客户端
			PrintWriter pw = new PrintWriter(service.getOutputStream());
			pw.println("你好!"); //输出信息到缓冲
			pw.flush(); //必须,从缓冲丢给你,并且把缓冲刷新
			
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}
}

客户端

package com.qianfeng.xqc.day0318.socketPrintWriterScanner;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class DemoClient {
	static int port = 8888;
	static String ip = "127.0.0.1";
	
	public static void main(String[] args) {

		try {
			Socket client = new Socket(ip,port);
			
			//发送消息给服务端
			PrintWriter pw = new PrintWriter(client.getOutputStream());
			pw.println("你好!");
			pw.flush();
			
			//读取服务端发来的消息
			Scanner scan = new Scanner(client.getInputStream());
			String msg = scan.nextLine();
			System.out.println("服务端说:" + msg);			
			
			
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值