Java網(wǎng)絡(luò)編程TCP實(shí)現(xiàn)文件上傳功能
本文實(shí)例為大家分享了Java網(wǎng)絡(luò)編程TCP實(shí)現(xiàn)文件上傳的具體代碼,供大家參考,具體內(nèi)容如下
上一篇博客,用網(wǎng)絡(luò)編程TCP 實(shí)現(xiàn)聊天,這次實(shí)現(xiàn)文件上傳。
客戶端:package com.kuang.lesson02;import java.io.*;import java.net.InetAddress;import java.net.Socket;//客戶端public class TcpClientDemo2 { public static void main(String[] args) throws Exception {//1、創(chuàng)建一個Socket連接Socket socket = new Socket(InetAddress.getByName('127.0.0.1'),9000);//2、創(chuàng)建一個輸出流OutputStream os = socket.getOutputStream();//3、讀取文件FileInputStream fis = new FileInputStream(new File('sendFile.jpg'));//4、寫出文件byte[] buffer = new byte[1024];int len;while ((len=fis.read(buffer))!=-1) { os.write(buffer,0,len);}//通知服務(wù)器,我已經(jīng)結(jié)束了socket.shutdownOutput();//確定服務(wù)器接收完畢,才能斷開連接InputStream inputStream = socket.getInputStream();//String byte[]ByteArrayOutputStream baos = new ByteArrayOutputStream();byte[] buffer2 = new byte[1024];int len2;while ((len2=inputStream.read(buffer2))!=-1) { baos.write(buffer2,0,len2);}System.out.println(baos.toString());//5、關(guān)閉資源fis.close();os.close();socket.close(); }}服務(wù)端:
package com.kuang.lesson02;import java.io.*;import java.net.ServerSocket;import java.net.Socket;//服務(wù)端public class TcpServerDemo02 { public static void main(String[] args) throws Exception {//1、創(chuàng)建服務(wù)ServerSocket serverSocket = new ServerSocket(9000);//2、監(jiān)聽客戶端的連接//阻塞式監(jiān)聽,會一直等待客戶端連接Socket socket = serverSocket.accept();//3、獲取輸入流InputStream is = socket.getInputStream();//4、文件輸出FileOutputStream fos = new FileOutputStream(new File('receive.jpg'));byte[] buffer = new byte[1024];int len;while ((len=is.read(buffer))!=-1) { fos.write(buffer,0,len);}//通知客戶端我接收完畢OutputStream os = socket.getOutputStream();os.write('我接收完畢了,你可以斷開了'.getBytes());//5、關(guān)閉資源fos.close();is.close();socket.close();serverSocket.close(); }}運(yùn)行結(jié)果:
1、首先可以發(fā)現(xiàn)目錄下只有要上傳的文件sendFile.jsp

2、運(yùn)行服務(wù)端,創(chuàng)建服務(wù),可以發(fā)現(xiàn)一直在運(yùn)行

3、運(yùn)行客戶端,文件上傳,可以發(fā)現(xiàn)目錄下多了個上傳到服務(wù)端的文件receive.jpg,同時接收到了服務(wù)端發(fā)送來的消息。


4、打開兩個文件,可以發(fā)現(xiàn)相同


網(wǎng)絡(luò)編程實(shí)現(xiàn)文件上傳就簡單介紹到這里了!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP新手必備的基礎(chǔ)知識2. PHP基礎(chǔ)之生成器4——比較生成器和迭代器對象3. CentOS郵箱服務(wù)器搭建系列——SMTP服務(wù)器的構(gòu)建( Postfix )4. asp文件用什么軟件編輯5. JAVA 實(shí)現(xiàn)延遲隊(duì)列的方法6. Vue axios獲取token臨時令牌封裝案例7. js實(shí)現(xiàn)計(jì)算器功能8. JS中6個對象數(shù)組去重的方法9. 利用CSS制作3D動畫10. 通過IEAD+Maven快速搭建SSM項(xiàng)目的過程(Spring + Spring MVC + Mybatis)

網(wǎng)公網(wǎng)安備