一般是已经封装好的jar包里面,这里通过原始步骤实现一下这个功能
##############################################################################
客户端步骤:
1、确定连接地址和端口
2、读取文件
3、获取socket输出流
4、发送
5、向服务器发送结束标记,让服务器结束读取动作
6、接收返回信息
7、关闭资源
###UploadTextClient.java
public class UploadTextClient { /** * @param args * @throws IOException * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException, IOException { System.out.println("上传文件客户端运行......"); // 客户端: // 步骤: // 1,创建socket,明确地址和端口。 Socket s = new Socket("192.168.1.223", 10006); // 2,源:读取文本文件。获取需要转换的数据。 BufferedReader bufr = new BufferedReader(new FileReader("tempfile\client.txt")); // 3,目的:网络,socket输出流。将录入的数据发送到服务端。 PrintWriter out = new PrintWriter(s.getOutputStream(),true); // 4,频繁的读写操作。 String line = null; while((line=bufr.readLine())!=null){ out.println(line); } //给服务端发送一个结束标记。这个标记是约定标记。有点麻烦。可以更简单。使用socket对象的shutdownOutput(); s.shutdownOutput();//向服务端发送了结束标记。可以让服务端结束读取的动作。 // 5,源:socket,socket读取流,读取服务端发回来的上传成功信息。 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream())); String info = bufIn.readLine(); System.out.println(info); // 6,关闭资源。 bufr.close(); s.close(); } }
###########################################################################################
服务端步骤:
1、建立服务端socket
2、接收客户端socket
3、建立文件对象
4、多次接收,写入
5、返回接收完毕信息
6、关闭资源
###UploadTextServer.java
public class UploadTextServer { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { System.out.println("上传文本服务端运行...."); // 服务端: // 思路: // 1,创建服务端socket 明确端口。 ServerSocket ss = new ServerSocket(10006); while (true) { // 获取客户端对象。 Socket s = ss.accept(); System.out.println(s.getInetAddress().getHostAddress()+".....connected"); // 2,源:socket输入流。读取客户端的发过来的数据。 BufferedReader bufIn = new BufferedReader(new InputStreamReader( s.getInputStream())); // 3,目的:文件。 PrintWriter pw = new PrintWriter(new FileWriter("tempfile\server.txt"),true); // 4,频繁的读写操作。 String line = null; while ((line = bufIn.readLine()) != null) { // if("over".equals(line)){ // break; // } pw.println(line); } // 5,发回给客户端上传成功字样。 PrintWriter out = new PrintWriter(s.getOutputStream(),true); out.println("上传成功"); // 6,关闭客户端。 s.close(); } } }