java模擬TCP通信實現(xiàn)客戶端上傳文件到服務(wù)器端
更新時間:2019年10月18日 09:34:58 作者:良睿
這篇文章主要為大家詳細(xì)介紹了java模擬TCP通信實現(xiàn)客戶端上傳文件到服務(wù)器端,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
java模擬TCP通信實現(xiàn)客戶端上傳文件到服務(wù)器端,供大家參考,具體內(nèi)容如下
客戶端
package com.zr;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
/*
客戶端
*/
public class TCPClient {
public static void main(String[] args) throws IOException {
//創(chuàng)建客戶端,ip地址:127.0.0.1,端口號:8888
Socket socket=new Socket("127.0.0.1",8888);
//創(chuàng)建客戶端本地輸入流,從客戶本地獲取要上傳的文件
FileInputStream fis=new FileInputStream("timg.jpg");
//獲取網(wǎng)絡(luò)輸出字節(jié)流,從而向服務(wù)器端發(fā)送數(shù)據(jù)
OutputStream os = socket.getOutputStream();
int len=0;
byte[] bytes=new byte[1024];
while ((len=fis.read(bytes))!=-1){
//向服務(wù)器端發(fā)送文件
os.write(bytes,0,len);
}
//關(guān)閉客戶端輸出流,中斷上傳
socket.shutdownOutput();
//獲取網(wǎng)絡(luò)字節(jié)輸入流,從而獲取服務(wù)器端傳來的數(shù)據(jù)
InputStream is = socket.getInputStream();
while ((len=is.read(bytes))!=-1){
//輸出從服務(wù)器端獲取的數(shù)據(jù):“上傳成功”
System.out.println(new String(bytes,0,len));
}
//關(guān)閉客戶端
socket.close();
}
}
服務(wù)器端
package com.zr;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
服務(wù)器端
*/
public class TCPServer {
public static void main(String[] args) throws IOException {
//創(chuàng)建服務(wù)器端,端口號:8888
ServerSocket serverSocket=new ServerSocket(8888);
while (true){
//獲取客戶端對象
Socket socket=serverSocket.accept();
//創(chuàng)建服務(wù)器端輸出流,從而把從客戶端獲得的文件保存到服務(wù)器本地,并且重新命名
FileOutputStream fos=new FileOutputStream("upload"+System.currentTimeMillis()+".jpg");
//獲取網(wǎng)絡(luò)輸出字節(jié)流,從而向客戶端發(fā)送數(shù)據(jù)
InputStream inputStream = socket.getInputStream();
int len=0;
byte[] bytes=new byte[1024];
while ((len=inputStream.read(bytes))!=-1){
//保存從客戶端收到的文件
fos.write(bytes,0,len);
}
//獲取網(wǎng)絡(luò)輸出字節(jié)流,從而向客戶端發(fā)送數(shù)據(jù)
OutputStream outputStream = socket.getOutputStream();
//向客戶端發(fā)送信息:“上傳成功”
outputStream.write("上傳成功".getBytes());
//關(guān)閉客戶端
socket.close();
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Vue+Java 通過websocket實現(xiàn)服務(wù)器與客戶端雙向通信操作
- Java利用TCP協(xié)議實現(xiàn)客戶端與服務(wù)器通信(附通信源碼)
- Java實現(xiàn)UDP通信過程實例分析【服務(wù)器端與客戶端】
- java UDP通信客戶端與服務(wù)器端實例分析
- java Tcp通信客戶端與服務(wù)器端實例
- java模擬客戶端向服務(wù)器上傳文件
- java實現(xiàn)客戶端向服務(wù)器發(fā)送文件
- Java實現(xiàn)文件上傳服務(wù)器和客戶端
- java實現(xiàn)上傳文件到服務(wù)器和客戶端
- Java Socket編程服務(wù)器響應(yīng)客戶端實例代碼
- Java thrift服務(wù)器和客戶端創(chuàng)建實例代碼
- java多線程實現(xiàn)服務(wù)器端與多客戶端之間的通信
- 教你怎么用java實現(xiàn)客戶端與服務(wù)器一問一答
相關(guān)文章
Java協(xié)程編程之Loom項目實戰(zhàn)記錄
這篇文章主要介紹了Java協(xié)程編程之Loom項目嘗鮮,如果用嘗鮮的角度去使用Loom項目,可以提前窺探JVM開發(fā)者們是如何基于協(xié)程這個重大特性進(jìn)行開發(fā)的,這對于提高學(xué)習(xí)JDK內(nèi)核代碼的興趣有不少幫助,需要的朋友可以參考下2021-08-08
Java數(shù)據(jù)結(jié)構(gòu)及算法實例:選擇排序 Selection Sort
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實例:選擇排序 Selection Sort,本文直接給出實現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-06-06

