Socket套接字是网络通信中的基本操作单元,我们不仅可以Socket发送和接收字符串,还可以通过输入输出流进行文件的上传或发送。
TCP协议实现文件上传(发送)
TCP协议实现文件上传,即使用ServerSocket和Socket进行文件的上传和接收。
在发送端(客户端)我们需要通过输入流读取需要上传的文件的字节流,再通过socket的输出流将字节数据源源不断地发送出去。
例如:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class ClientSocketTest {
public static void main(String args[]) throws Exception {
// 要连接的服务端IP地址和端口
String host = "127.0.0.1";
int port = 55533;
// 与服务端建立连接
Socket socket = new Socket(host, port);
// 建立连接后获得输出流
OutputStream outputStream = socket.getOutputStream();
InputStream ins = new BufferedInputStream(new FileInputStream("Java 网络编程基础.png"));
byte[] message = new byte[1024];
System.out.println("客户端正在上传文件...");
while (ins.read(message) != -1) {
outputStream.write(message);
}
outputStream.flush();
outputStream.close();
ins.close()