TCP文件上传Java_java 基于TCP协议的文件上传
參考文檔
1.https://www.sxt.cn/Java_jQuery_in_action/ten-filebytestream.html
2.https://www.sxt.cn/Java_jQuery_in_action/ten-bufferedbyte.html
參考視頻
https://www.bilibili.com/video/BV1ct411n7oG?p=245
1.代碼功能
客戶端上傳文件到服務器端
2.學習重點
1.文件字節流
2.緩沖字節流
3.客戶端代碼
1.注意輸入流是FileInputStream
2.把客戶端的輸入流經過緩存數組讀寫入到客戶端的輸出流
package com.sxt.tcp;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class FileClient {
public static void main(String[] args) throws UnknownHostException, IOException {
//1.建立連接:使用Socket創建客戶端+服務的地址和端口
System.out.println("=================client================");
Socket client=new Socket("localhost",8888);
//2.操作:拷貝 上傳
InputStream is=new BufferedInputStream(new FileInputStream("src/ndl.png"));
OutputStream os=new BufferedOutputStream(client.getOutputStream());
byte[] flush=new byte[1024];
int len=-1;
while((len=is.read(flush))!=-1) {
os.write(flush,0,len);
}
os.flush();
//3.釋放資源
os.close();
is.close();
client.close();
}
}
4.服務器端代碼
1.注意輸出流是FileOutputStream
2.把客戶端的輸出流經過緩存數組讀寫入到服務器端輸出流
package com.sxt.tcp;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class FileServer {
public static void main(String[] args) throws IOException {
// 1.指定端口 使用ServerSocket創建服務器
ServerSocket server=new ServerSocket(8888);
// 2.阻塞式等待連接 accept
Socket client=server.accept();
System.out.println("一個客戶端建立了連接");
//3.操作:文件拷貝 存儲
InputStream is=new BufferedInputStream(client.getInputStream());
OutputStream os=new BufferedOutputStream(new FileOutputStream("src/tcp.png"));
byte[] flush=new byte[1024];
int len=-1;
while((len=is.read(flush))!=-1) {
os.write(flush,0,len);
}
os.flush();
os.close();
is.close();
}
}
總結
以上是生活随笔為你收集整理的TCP文件上传Java_java 基于TCP协议的文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java开发websocket聊天室_j
- 下一篇: java美元兑换,(Java实现) 美元