利用服务端与客户端之间进行文本传输

需要利用BufferedReader 与 BufferedWriter 进行读取与撰写,利用客户端进行对需要的文本利用FileReader进行读取,写入Socket中的getOutStream的字节流。
利用服务端进行创建文本,利用FileWriter进行对Socket中getInputStream中传入的数据进行writer写入新创建的文本中。`

服务端

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class TextServer {
/*
 * 需求:将客户端输入的字符串利用服务端进行存储
 * 1.建立服务端
 * 2,服务端接受
 * 3.利用自带getOutStream
 * 4,对传入的数据进行封装成text文档利用FileWriter fw = new FileWrite("demo.txt");
 * ,
 * 
 * */
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        //1.
        ServerSocket ss = new ServerSocket(10005);

        //2.
        Socket s = ss.accept();

        //获取IP
        String ip = s.getInetAddress().getHostAddress();
        System.out.println(ip+".......");

        //获取Socket读取流,并装饰
        BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));

        //创建文档来进行存储
        BufferedWriter bufr = new BufferedWriter( new FileWriter("C:\\TextServer.txt"));        

        String str = null;
        while((str = bufIn.readLine())!= null) {
            //System.out.println(str);
            bufr.write(str);
            bufr.newLine();//进行分行
        }
        bufr.close();
        s.close();
        ss.close();


    }

}

客户端:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class TransClient {

    public static void main(String[] args) throws IOException, IOException {
        // TODO Auto-generated method stub
        /*
         * 客户端
         * 1.需要先有socket端点
         * 2.客户端的数据源:键盘
         * 3.客户端的目的:socket
         * 4.接受服务端的数据:源socket
         * 5。将数据显示在打印出来,目的:控制台
         * 6.在这些流中操作的数据都是文本数据
         * 
         * 转换客户端
         * 1.创建socket客户端对象
         * 2.获取键盘录入
         * 3.将录入的信息发送给socket输出流
         * 
         * */
        //1创建socket对象
        Socket s = new Socket("192.168.1.102",10004);

        //2获取键盘录入
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

        //3.socket输出流
        PrintWriter out = new PrintWriter(s.getOutputStream(),true);

        //4.socket输入流,将服务端返回的大写数据
        BufferedReader bufrIn = new BufferedReader(new InputStreamReader(s.getInputStream()));

        String line = null;

        while((line = bufr.readLine())!= null) {
            if("over".equals(line))
                break;
            out.println(line);

            //读取服务端发回的大写字母
            String upper = bufrIn.readLine();
            System.out.println(upper);

        }
    }

}

猜你喜欢

转载自blog.csdn.net/So_Band/article/details/80067105