最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java使用Socket實(shí)現(xiàn)文件上傳功能

 更新時間:2022年02月24日 11:47:07   作者:??悲宸???  
這篇文章主要為大家詳細(xì)介紹了java使用Socket實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了使用Socket實(shí)現(xiàn)文件上傳功能的具體代碼,供大家參考,具體內(nèi)容如下

文件上傳的步驟:

服務(wù)器端步驟:

1、創(chuàng)建ServerSocket

2、調(diào)用accept獲得客戶端Socket

3、定義字節(jié)數(shù)組

4、創(chuàng)建文件輸出流,獲得客戶端輸入流

5、循環(huán)讀取輸入流的字節(jié),寫入到文件輸出流

客戶端步驟:

1、創(chuàng)建Socket

2、獲得socket對象輸出流

3、創(chuàng)建文件輸入流

4、循環(huán)讀取文件輸入流字節(jié),寫入到輸出流

代碼實(shí)現(xiàn):

服務(wù)器端:

public class FileServer {
? ? public static final int PORT = 8888;
? ? public static final String PATH = "D:\\upload\\";

? ? public void start(){
? ? ? ? System.out.println("start...");
? ? ? ? try ( ? //創(chuàng)建服務(wù)器端對象
? ? ? ? ? ? ? ? ServerSocket server = new ServerSocket(PORT);){
? ? ? ? ? ? while (true){
? ? ? ? ? ? ? ? Socket socket = server.accept();
? ? ? ? ? ? ? ? try ( ? //創(chuàng)建文件輸出流和網(wǎng)絡(luò)輸入流
? ? ? ? ? ? ? ? ? ? ? ? DataInputStream in = new DataInputStream(socket.getInputStream());
? ? ? ? ? ? ? ? ? ? ? ? //讀取哭護(hù)短發(fā)來的文件名,創(chuàng)建文件輸出流
? ? ? ? ? ? ? ? ? ? ? ? FileOutputStream out = new FileOutputStream(PATH+in.readUTF())){
? ? ? ? ? ? ? ? ? ? ? ? int len = 0;
? ? ? ? ? ? ? ? ? ? ? ? byte[] buffer = new byte[1024];
? ? ? ? ? ? ? ? ? ? ? ? while ((len = in.read(buffer)) != -1){
? ? ? ? ? ? ? ? ? ? ? ? ? ? out.write(buffer,0,len);
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? System.out.println("服務(wù)器保存完畢!");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? } catch (IOException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }

? ? public static void main(String[] args) {
? ? ? ? new FileServer().start();
? ? }

}

客戶端:

public class FileClient {
? ? /**
? ? ?* 發(fā)送文件
? ? ?*/
? ? public void sendFile(String ip,int port,String path){
? ? ? ? File file = new File(path);
? ? ? ? try (
? ? ? ? ? ? //創(chuàng)建連接,創(chuàng)建文件輸入流,網(wǎng)絡(luò)輸出流
? ? ? ? ? ? Socket socket = new Socket(ip,port);
? ? ? ? ? ? InputStream in = new FileInputStream(path);
? ? ? ? ? ? DataOutputStream out = new DataOutputStream(socket.getOutputStream())){
? ? ? ? ? ? //先發(fā)送文件給服務(wù)器
? ? ? ? ? ? out.writeUTF(file.getName());
? ? ? ? ? ? out.flush();
? ? ? ? ? ? //讀取本地文件,寫入到網(wǎng)絡(luò)輸出流中
? ? ? ? ? ? int len = 0;
? ? ? ? ? ? byte[] buffer = new byte[1024];
? ? ? ? ? ? while ((len ?= in.read(buffer)) != -1){
? ? ? ? ? ? ? ? out.write(buffer,0,len);
? ? ? ? ? ? }
? ? ? ? ? ? System.out.println("客戶端發(fā)送完畢!");
? ? ? ? } catch (UnknownHostException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } catch (IOException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }

? ? public static void main(String[] args) {
? ? ? ? new FileClient().sendFile("192.168.31.226",8888,"C:\\Users\\admin\\Desktop\\C.txt");
? ? }
}

實(shí)現(xiàn)效果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解SpringCloud Zuul過濾器返回值攔截

    詳解SpringCloud Zuul過濾器返回值攔截

    Zuul作為網(wǎng)關(guān)服務(wù),是其他各服務(wù)對外中轉(zhuǎn)站,通過Zuul進(jìn)行請求轉(zhuǎn)發(fā)。這篇文章主要介紹了詳解SpringCloud Zuul過濾器返回值攔截,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解JAVA 字節(jié)流和字符流

    詳解JAVA 字節(jié)流和字符流

    這篇文章主要介紹了JAVA 字節(jié)流和字符流的的相關(guān)資料,文中講解非常的細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 使用svn管理Maven項(xiàng)目的方法步驟

    使用svn管理Maven項(xiàng)目的方法步驟

    這篇文章主要介紹了使用svn管理Maven項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 解決tomcat發(fā)布工程后,WEB-INF/classes下文件不編譯的問題

    解決tomcat發(fā)布工程后,WEB-INF/classes下文件不編譯的問題

    這篇文章主要介紹了解決tomcat發(fā)布工程后,WEB-INF/classes下文件不編譯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 基于JPA中的@Basic注解詳解

    基于JPA中的@Basic注解詳解

    這篇文章主要介紹了JPA中的@Basic注解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot使用Apache?Tika檢測敏感信息

    SpringBoot使用Apache?Tika檢測敏感信息

    Apache?Tika?是一個功能強(qiáng)大的內(nèi)容分析工具,它能夠從多種文件格式中提取文本、元數(shù)據(jù)以及其他結(jié)構(gòu)化信息,下面我們來看看如何使用Apache?Tika檢測敏感信息從而實(shí)現(xiàn)數(shù)據(jù)泄露防護(hù)吧
    2025-01-01
  • idea配置多環(huán)境啟動方式dev、test、prod

    idea配置多環(huán)境啟動方式dev、test、prod

    這篇文章主要介紹了idea配置多環(huán)境啟動方式dev、test、prod,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 詳解spring boot中使用JdbcTemplate

    詳解spring boot中使用JdbcTemplate

    JdbcTemplate 是在JDBC API基礎(chǔ)上提供了更抽象的封裝,并提供了基于方法注解的事務(wù)管理能力。 通過使用SpringBoot自動配置功能并代替我們自動配置beans,下面給大家介紹spring boot中使用JdbcTemplate相關(guān)知識,一起看看吧
    2017-04-04
  • Spring?RestTemplate遠(yuǎn)程調(diào)用過程

    Spring?RestTemplate遠(yuǎn)程調(diào)用過程

    這篇文章主要介紹了Spring?RestTemplate遠(yuǎn)程調(diào)用過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 如何利用Java實(shí)現(xiàn)MySQL的數(shù)據(jù)變化監(jiān)聽

    如何利用Java實(shí)現(xiàn)MySQL的數(shù)據(jù)變化監(jiān)聽

    在高并發(fā)和大數(shù)據(jù)環(huán)境下,實(shí)時獲取?MySQL?數(shù)據(jù)庫的增量變化對數(shù)據(jù)同步、數(shù)據(jù)分析、緩存更新等場景至關(guān)重要,下面我們就來看看如何通過Java實(shí)現(xiàn)MySQL的數(shù)據(jù)變化監(jiān)聽吧
    2025-02-02

最新評論

高青县| 彭阳县| 阳原县| 蓬溪县| 蛟河市| 南京市| 南昌市| 呼和浩特市| 朔州市| 彩票| 堆龙德庆县| 东光县| 抚顺市| 青河县| 日土县| 宜城市| 清远市| 中阳县| 古浪县| 布拖县| 阜阳市| 宁晋县| 百色市| 连云港市| 河东区| 确山县| 晋城| 拉萨市| 长垣县| 日土县| 阿拉善盟| 攀枝花市| 灯塔市| 长葛市| 金昌市| 农安县| 汉寿县| 新津县| SHOW| 玉山县| 鄯善县|