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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.客户端源代码
package cn.itcast07_TCP_Thread_UpFile;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;

/*
* TCP客户端, 上传文件
*
* 1.创建客户端的Socket对象(指定服务器端的IP地址与端口号)
* 2.获取客户端的输出流OutputStream对象
* 3.使用输出流对象,把指定文件中的数据,写到输出流中
*
* 4.当数据上传完毕后,告诉服务器端,上传数据完毕
*
* 5.获取服务器端返回的数据
* 6.关闭Socket流
*/
public class TCPClient {
        public static void main(String[] args) throws  IOException {
                //1.创建客户端的Socket对象(指定服务器端的IP地址与端口号)
                Socket socket = new Socket("192.168.68.107", 9999);
                //2.获取客户端的输出流OutputStream对象
                //OutputStream out = socket.getOutputStream();
                BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
                //3.使用输出流对象,把指定文件中的数据,写到输出流中
                //数据源 -- D:\\YesDir\\test.JPG
                BufferedInputStream in = new BufferedInputStream(new FileInputStream("D:\\YesDir\\test.JPG"));
                //目的地 -- Socket的输出流 -- out
                //读
                byte[] buffer = new byte[1024];
                int len = -1;
                while ((len = in.read(buffer)) != -1) {
                        //写
                        out.write(buffer, 0, len);   //len的意思是读了多少,就写多少。
                }
                //关闭操作文件的流
                in.close();
               
                //4.当数据上传完毕后,告诉服务器端,上传数据完毕
                socket.shutdownOutput();
               
                //5.获取服务器端返回的数据
                //InputStream is = socket.getInputStream();
                //InputStreamReader isr = new InputStreamReader( is );
                //BufferedReader br = new BufferedReader( isr );
                BufferedReader br = new BufferedReader( new InputStreamReader( socket.getInputStream() ) );
                //读取反馈数据
                String result = br.readLine();
                System.out.println("反馈数据:" + result);
               
                //6.关闭Socket流
                socket.close();
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马