Socket与ServerSocket之间的文本数据读取

来源:互联网 发布:数据库原理填空选择题 编辑:程序博客网 时间:2024/05/29 02:04

Socket 客户端代码
package chapter21;import java.io.*;import java.net.Socket;/** * Created by Administrator on 2016/10/6. */public class TextClient {    public static void main(String[] args) throws Exception {        //建立socket客户端服务流对象,并添加指定的主机和端口。        Socket s = new Socket("192.168.0.103", 10004);        //读取文本数据        BufferedReader bufr = new BufferedReader(new FileReader("javalist2.txt"));        //将读取的文本数据发送给socket流中。        BufferedWriter bufwout =                new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));        //添加结束标记,时间戳        // DataOutputStream dos=new DataOutputStream(s.getOutputStream());        // long time =System.currentTimeMillis();        //dos.writeLong(time);        String line = null;        while ((line = bufr.readLine()) != null) {            bufwout.write(line);            bufwout.newLine();            bufwout.flush();        }        //终止客户端的输出流,相当于给流中加入一个结束标记-1.        s.shutdownOutput();        //dos.writeLong(time);        //接收服务端返回的数据        BufferedReader bufrin =                new BufferedReader(new InputStreamReader(s.getInputStream()));        String str = bufrin.readLine();        System.out.println(str);        bufr.close();        s.close();    }}
ServerSocket 服务端代码
package chapter21;import java.io.*;import java.net.ServerSocket;import java.net.Socket;/** * Created by Administrator on 2016/10/6. */public class TextServer {    public static void main(String[] args) throws Exception {        //建立服务端socket流对象,并添加对应端口。        ServerSocket ss = new ServerSocket(10004);        //获取来子客户端的socket数据        Socket s = ss.accept();        String ip = s.getInetAddress().getHostAddress();        System.out.println(ip + "连接中....");        BufferedReader bufrin =                new BufferedReader(new InputStreamReader(s.getInputStream()));        //将读取的数据存储到指定文件中。        BufferedWriter bufw =                new BufferedWriter(new FileWriter("ceshi.txt"));        String line = null;        while ((line = bufrin.readLine()) != null) {            bufw.write(line);            bufw.newLine();            bufw.flush();        }        BufferedWriter bufwout =                new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));        bufwout.write("数据读取完毕哦");        System.out.println(".....");        bufwout.newLine();        bufwout.flush();        bufrin.close();        s.close();        ss.close();    }}


0 0