通常是已經封裝好的jar包裏面,這裏經過原始步驟實現一下這個功能
##############################################################################
客戶端步驟:
一、肯定鏈接地址和端口
二、讀取文件
三、獲取socket輸出流
四、發送
五、向服務器發送結束標記,讓服務器結束讀取動做
六、接收返回信息
七、關閉資源
java
###UploadTextClient.java服務器
public class UploadTextClient { /** * @param args * @throws IOException * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException, IOException { System.out.println("上傳文件客戶端運行......"); // 客戶端: // 步驟: // 1,建立socket,明確地址和端口。 Socket s = new Socket("192.168.1.223", 10006); // 2,源:讀取文本文件。獲取須要轉換的數據。 BufferedReader bufr = new BufferedReader(new FileReader("tempfile\\client.txt")); // 3,目的:網絡,socket輸出流。將錄入的數據發送到服務端。 PrintWriter out = new PrintWriter(s.getOutputStream(),true); // 4,頻繁的讀寫操做。 String line = null; while((line=bufr.readLine())!=null){ out.println(line); } //給服務端發送一個結束標記。這個標記是約定標記。有點麻煩。能夠更簡單。使用socket對象的shutdownOutput(); s.shutdownOutput();//向服務端發送告終束標記。可讓服務端結束讀取的動做。 // 5,源:socket,socket讀取流,讀取服務端發回來的上傳成功信息。 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream())); String info = bufIn.readLine(); System.out.println(info); // 6,關閉資源。 bufr.close(); s.close(); } }
###########################################################################################
服務端步驟:
一、創建服務端socket
二、接收客戶端socket
三、創建文件對象
四、屢次接收,寫入
五、返回接收完畢信息
六、關閉資源
###UploadTextServer.java網絡
public class UploadTextServer { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { System.out.println("上傳文本服務端運行...."); // 服務端: // 思路: // 1,建立服務端socket 明確端口。 ServerSocket ss = new ServerSocket(10006); while (true) { // 獲取客戶端對象。 Socket s = ss.accept(); System.out.println(s.getInetAddress().getHostAddress()+".....connected"); // 2,源:socket輸入流。讀取客戶端的發過來的數據。 BufferedReader bufIn = new BufferedReader(new InputStreamReader( s.getInputStream())); // 3,目的:文件。 PrintWriter pw = new PrintWriter(new FileWriter("tempfile\\server.txt"),true); // 4,頻繁的讀寫操做。 String line = null; while ((line = bufIn.readLine()) != null) { // if("over".equals(line)){ // break; // } pw.println(line); } // 5,發回給客戶端上傳成功字樣。 PrintWriter out = new PrintWriter(s.getOutputStream(),true); out.println("上傳成功"); // 6,關閉客戶端。 s.close(); } } }