Java網(wǎng)絡(luò)編程TCP實現(xiàn)文件上傳功能
本文實例為大家分享了Java網(wǎng)絡(luò)編程TCP實現(xiàn)文件上傳的具體代碼,供大家參考,具體內(nèi)容如下
上一篇博客,用網(wǎng)絡(luò)編程TCP 實現(xiàn)聊天,這次實現(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(); }}運行結(jié)果:
1、首先可以發(fā)現(xiàn)目錄下只有要上傳的文件sendFile.jsp
2、運行服務(wù)端,創(chuàng)建服務(wù),可以發(fā)現(xiàn)一直在運行
3、運行客戶端,文件上傳,可以發(fā)現(xiàn)目錄下多了個上傳到服務(wù)端的文件receive.jpg,同時接收到了服務(wù)端發(fā)送來的消息。
4、打開兩個文件,可以發(fā)現(xiàn)相同
網(wǎng)絡(luò)編程實現(xiàn)文件上傳就簡單介紹到這里了!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python如何實現(xiàn)word批量轉(zhuǎn)HTML2. python excel和yaml文件的讀取封裝3. python3實現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)4. python爬蟲實戰(zhàn)之制作屬于自己的一個IP代理模塊5. moment轉(zhuǎn)化時間戳出現(xiàn)Invalid Date的問題及解決6. Android中的緩存7. 關(guān)于 Android WebView 的內(nèi)存泄露問題8. java——Byte類/包裝類的使用說明9. Python中內(nèi)建模塊collections如何使用10. Spring boot整合連接池實現(xiàn)過程圖解
