Java網絡編程TCP實現文件上傳功能
本文實例為大家分享了Java網絡編程TCP實現文件上傳的具體代碼,供大家參考,具體內容如下
上一篇博客,用網絡編程TCP 實現聊天,這次實現文件上傳。
客戶端: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、創建一個Socket連接Socket socket = new Socket(InetAddress.getByName('127.0.0.1'),9000);//2、創建一個輸出流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);}//通知服務器,我已經結束了socket.shutdownOutput();//確定服務器接收完畢,才能斷開連接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、關閉資源fis.close();os.close();socket.close(); }}服務端:
package com.kuang.lesson02;import java.io.*;import java.net.ServerSocket;import java.net.Socket;//服務端public class TcpServerDemo02 { public static void main(String[] args) throws Exception {//1、創建服務ServerSocket serverSocket = new ServerSocket(9000);//2、監聽客戶端的連接//阻塞式監聽,會一直等待客戶端連接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、關閉資源fos.close();is.close();socket.close();serverSocket.close(); }}運行結果:
1、首先可以發現目錄下只有要上傳的文件sendFile.jsp
2、運行服務端,創建服務,可以發現一直在運行
3、運行客戶端,文件上傳,可以發現目錄下多了個上傳到服務端的文件receive.jpg,同時接收到了服務端發送來的消息。
4、打開兩個文件,可以發現相同
網絡編程實現文件上傳就簡單介紹到這里了!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: