• 文件上传:服务器端接收到客户端文件中的数据,向服务器端的另一个文件中写出
    • 接收到文件内容,写到某个文件中

    这里的数据是文件中的内容!
    **
    server:

    1. import java.io.FileOutputStream;
    2. import java.io.IOException;
    3. import java.io.InputStream;
    4. import java.io.OutputStream;
    5. import java.net.ServerSocket;
    6. import java.net.Socket;
    7. public class Server {
    8. public static void main(String[] args) throws IOException {
    9. //建立服务器
    10. ServerSocket serverSocket = new ServerSocket(8888);
    11. Socket socket = serverSocket.accept();
    12. //获取流
    13. InputStream in = socket.getInputStream();
    14. //获取到上传文件的内容,要有一个文件
    15. FileOutputStream fos = new FileOutputStream("a.txt");
    16. //一个字节读取,循环读取
    17. int b = -1;
    18. while((b=in.read())!=-1){
    19. //一次读一个字节,最终文件接收了所有的上传数据
    20. fos.write(b);
    21. }
    22. //关闭io流
    23. fos.close();
    24. //给客户端返回一个响应 - ok
    25. OutputStream out = socket.getOutputStream();
    26. String content = "o";
    27. out.write(content.getBytes());
    28. //关闭socket
    29. socket.close();
    30. serverSocket.close();
    31. }
    32. }

    上传文件内容:

    • 读取文件内容
    • 发生给服务器


    client:**

    1. import java.io.FileInputStream;
    2. import java.io.IOException;
    3. import java.io.InputStream;
    4. import java.io.OutputStream;
    5. import java.net.Socket;
    6. public class Client {
    7. public static void main(String[] args) throws IOException {
    8. //建立客户端
    9. Socket socket = new Socket("localhost", 8888);
    10. //建立连接后,获取socket的io流
    11. OutputStream out = socket.getOutputStream();
    12. //获取文件对象
    13. FileInputStream fis = new FileInputStream("aa.txt");
    14. //读取文件内容
    15. int b = -1;
    16. while((b=fis.read())!=-1){
    17. //输出数据给服务器
    18. out.write(b);
    19. }
    20. //关闭流
    21. fis.close();
    22. //告知服务器,不再发生数据了
    23. socket.shutdownOutput();
    24. //获取输入流,接收服务器端的响应
    25. InputStream in = socket.getInputStream();
    26. int read = in.read();
    27. System.out.println((char)read);
    28. //关闭socket
    29. socket.close();
    30. }
    31. }