Re: [問題] socket寫活的

看板java作者 (LaPass)時間10年前 (2013/11/17 01:14), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《dremel (hadoop)》之銘言: : 小弟初學,已下請教 : 這是我找到的code : http://ideone.com/9lHhTM FileClient : http://ideone.com/OmpTun FileServer : 這支code執行順序方式: : (test.jpg在FileClient所屬目錄) : 1. java FileServer test.jpg : 2. java FileClient test.jpg : 結果:FileClient將檔案傳到FileServer端 : 我想做的是假設我從資料庫查到一筆資料,叫tom.jpg : 已抓到tom.jpg字串 : 我將tom.jpg存放在字串String tom裡面 : 那我要如何讓我上面那兩隻socket code : 根據我從資料庫所找到的tom變數傳輸tom.jpg檔!!! : 也就是我要將上面兩隻程式碼改成活的!!! : 問題在於不需要使用者在java執行後面還要加檔名 : 而且這兩隻程式目前再傳檔案前, : 都還必須server端執行前加檔名(此時連結中) : >然後client端執行加檔名>server端才收到檔案。 : 所以我要如何讓client端抓到tom變數然後在複製tom.jpg : 將tom.jpg傳到server端??(不需要使用者在執行過程中輸入檔名) : 請問要怎麼改寫? : 麻煩大大解惑 方法1: 學FTP的做法 一條連線專門用來下指令的 檔名之類的從指令連線去收發 然後當你收到傳輸檔案的指令時,再開另外一條連線去收發檔案 方法2: 自訂通訊協議 基本上,兩邊的 socket.getInputStream() socket.getOutputStream() 是互相對應的,一邊的Input送出去的東西另外一邊的Output會收到 至於送的是什麼東西,很純粹的是看你的格式怎麼定 自己訂個方法,讓另外一邊收到那串指令時知道該做什麼事就好了 我比較建議用這種方法 因為花多一點的時間把工具寫好後,未來寫到網路連線時會比較舒服 方法3: 如果你要交作業的話.... 在剛建立連線的時候,你先傳一行 test.jpg 過去 我記得 InputStream 跟 OutputStream 有個子類別 是可以用ReadLine Write 之類的方法 先用那個把檔名送過去就是了 收到檔名之後,再依照範例那樣把檔案傳輸過去 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.38.69.229

11/18 15:56, , 1F
也推第二種寫法
11/18 15:56, 1F

11/18 20:20, , 2F
推2 目前工作傳檔案就是這樣寫
11/18 20:20, 2F
文章代碼(AID): #1IXwVwn4 (java)
文章代碼(AID): #1IXwVwn4 (java)