TCP通信(上传文件)

Posted jxliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP通信(上传文件)相关的知识,希望对你有一定的参考价值。

package demo04;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class TCPclient {
    public static void main(String[] args) throws IOException {
        //1.创建socket对象,连接服务器
        Socket s =new Socket("127.0.0.1", 8765);
        //2.通过套接字获取输出流
        OutputStream out =s.getOutputStream();
        //3.获取数据源
        FileInputStream fis =new FileInputStream("D:\test\aaa.png");
        //4.读数据
        int len =0;
        byte [] b =new byte [1024];
        while((len =fis.read(b))!=-1){
            //写入目的地
            out.write(b,0,len);
        }
        s.shutdownOutput();
        //接受服务器回复
        InputStream in =s.getInputStream();
        len =in.read(b);
        System.out.println(new String(b ,0,len));
        //释放资源
        fis.close();
        s.close();
    }
}
package demo04;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

import org.xml.sax.InputSource;

public class TCPserver{
    public static void main(String[] args) throws IOException {
        //1.创建服务器套接字绑定接口
        ServerSocket ser =new ServerSocket(8765);
        //2.接受套接字对象
        Socket s =ser.accept();
        //3.获取输入流
        InputStream in =s.getInputStream();
        //4.获取文件夹,如果不存在就创建
        File f =new File("f:\aaa");
        if(!f.exists()){
            f.mkdirs();
        }
        //5.创建文件输出流
        String filename ="oracle"+System.currentTimeMillis()+new Random().nextInt(99999)+".png";
        FileOutputStream fos =new FileOutputStream(f+File.separator+filename);
        //6.写入数据
        byte  [] b =new byte [1024];
        int len =0;
        while((len =in.read(b))!=-1){
            fos.write(b,0,len);
        }
        //服务器给客服端回复(上传成功)
        OutputStream out=s.getOutputStream();
        out.write("上传成功".getBytes());
        //释放资源
        fos.close();
        s.close();
        ser.close();
    }
    
}

 

以上是关于TCP通信(上传文件)的主要内容,如果未能解决你的问题,请参考以下文章

TCP通信程序练习5——上传文件-服务器给出反馈

TCP通信程序练习5——上传文件-服务器给出反馈

TCP通信(上传文件)

java 网络编程之TCP通信和简单的文件上传功能

TCP通信 - 服务器开启多线程与read()导致服务器阻塞问题

java TCP通信 socket 套接字 用图片上传轰炸服务器