A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

基于聊天客户端的基础上的文件(TXT文件)传输

客户端代码:

public class UploadClient {

        public static void main(String[] args) throws UnknownHostException, IOException {
                // TODO Auto-generated method stub
                //1,创建socket客户端对象
                Socket s = new Socket("localhost",10005);
                //2,读取本地文件
                BufferedReader bufr = new BufferedReader(new FileReader("C:\\新建文件夹\\client.txt"));
                //3,Socket流
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
               
                String line = null;
                while((line=bufr.readLine())!=null){
                       
                        out.println(line);
                       
                }
                //告诉服务端,客户端写完了
                s.shutdownOutput();
                //4,读取服务端返回的上传成功对象
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
                String str = bufIn.readLine();
                System.out.println(str);
                //关闭资源
                bufr.close();
                s.close();
        }

}

服务端代码:

public static void main(String[] args) throws UnknownHostException, IOException {
                // TODO Auto-generated method stub
                //1,
                ServerSocket ss = new ServerSocket(10005);
                //2,获取Socket对象
                Socket s = ss.accept();
                //获取IP
                System.out.println(s.getInetAddress().getHostAddress()+"....conected");
                //3,获取Socket读取流,并装饰
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
               
                //4,写入文件
                BufferedWriter bufw = new BufferedWriter(new FileWriter("C:\\新建文件夹\\server.txt"));
               
                String line = null;
                while((line=bufIn.readLine())!=null){
                       
                        bufw.write(line);
                        bufw.newLine();//换行
                        bufw.flush();//刷新流
                }
               
               
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
                out.println("上传成功");
                bufw.close();
                s.close();//关闭客户端
                ss.close();//关闭服务端
        }

要注意的是TCP传输中,一定要先运行服务端再运行客户端。
---------------------
【转载,仅作分享,侵删】
作者:lzq1326253299
原文:https://blog.csdn.net/lzq1326253299/article/details/86526556
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
奈斯,感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马