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