TCP-上传文本文件

26 篇文章 0 订阅
12 篇文章 0 订阅
//TCP-上传文本文件
import java.io.*;
import java.net.*;

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

        Socket s = new Socket("192.168.1.254",10006);
        BufferedReader bufr = new BufferedReader(new FileReader("IPDemo.txt"));//缓冲读取流(文件读取流)

        //这里的输出流会 送到 服务端,是否跟服务端关联,关键看参数里面是否带了(s.getOutputStream())
        PrintWriter out = new PrintWriter(s.getOutputStream(),true);//向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。(自动刷新)

        /*//拿时间戳作结束标记,关联Socket流
        //DataOutputStream dos = new DataOutputStream(s.getOutputStream());
        //long time = System.currentTimeMillis();
        //out.println(time);
        //dos.writeLong(time);*/

        String line = null;//line作缓存
        while ((line= bufr.readLine())!=null)//循环条件里面 缓冲读取流bufr调用readLine(),String readLine() 读取一个文本行。非空,则持续读取文本行 
        {
            out.println(line);//向文本输出流out写数据line // void println(String x) // 打印 String,然后终止该行。 
        }

        s.shutdownOutput();//关闭客户端的输出流,相当于给流中加入一个结束标记-1.
        //返回值void, shutdownOutput()方法  禁用此套接字的输出流。 

        /*//out.println("over");//自定义结束标记
        //dos.writeLong(time);*/

        //输入流Socket流 接收服务端 数据,参数(s.getInputStream())
        BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));

        String str = bufIn.readLine();//变成字符串
        System.out.println(str);//打印字符串
        bufr.close();
        s.close();
    }
}

class  TextServer
{
    public static void main(String[] args) throws Exception
    {
        ServerSocket ss = new ServerSocket(10006);//服务端

        Socket s = ss.accept();//等待客户端连接,获取客户端s
        String ip = s.getInetAddres().getHostAddress();
        System.out.println(ip="...connected");

        DataInputStream dis = new DataInputStream(s.getInputStream());
        long l = dis.readLong();

        //网络输入流,读取客户端的数据, 返回值InputStream, Socket方法getInputStream() ,返回此套接字的输入流。 
        BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
        //这个输出流用来写入保存文件
        PrintWriter out  = new PrintWriter(new FileWriter("server.txt"),true);

        String line = null;
        while ((line= bufIn.readLine())!=null)
        {
            //if ("over".equals(line))//自定义结束标记
            //if (time.equals(l))//自定义结束标记
            //break;            
            out.println(line);
        }

        //输出流,返回给客户端的信息数据
        PrintWriter pw = new PrintWriter(s.getOutputStream().true);
        pw.println("上传成功");

        out.close();
        s.close();
        ss.close();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值