[問題] 將byte[]傳給socket送出接收 相關問題

看板AndroidDev作者 (Bryce(。・∀・。)☆彡)時間7年前 (2017/05/15 21:18), 7年前編輯推噓1(1013)
留言14則, 4人參與, 最新討論串1/1
第一次寫socket相關,感覺好像很多資料,卻又不是看了不是很懂, 所以來發文問一下。 1.socket用什麼做比較好? 因為我資料處理上又是用handler, 還是說這樣就不要用asynctack? 2.我要傳接的不是一般的string 是要傳byte[]的資料,這樣要怎麼樣比較好傳? 如果改用bundle,又不能跟handler那邊同步,而且也不好傳byte[] 3.socket要輸出,是要怎麼寫? 因為網路上教學大多都是string 要改丟byte[]是要怎樣處理。 ---已解--- 4.用asynctack 要把byte[]丟回來的話, 就是要@Override onPostExecute? (這個只要前面傳可以做好,這部分好像就OK了? 下面這是我宣告socket方式: public class MainActivity extends Activity { Handler mHandler; ... public void onCreate(Bundle savedInstanceState) { Client client; client.execute(); } ... mHandler = new Handler(); final Runnable runnable = new Runnable() { public void run() { Combinedata.setData(); } } ... } public class Client extends AsyncTask<Void, Void, Void> { protected Void doInBackground(Void... voids) { try { socket = new Socket(ipAddress, port); socket輸出處? } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.66.156 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1494854314.A.2FE.html

05/15 21:41, , 1F
byte 和string不是可以轉換嗎???
05/15 21:41, 1F
這部分我再找找看

05/16 01:02, , 2F
.getOutputStream()跟.getInputStream()
05/16 01:02, 2F

05/16 01:03, , 3F
TCP Socket也只有這兩個可以玩而已 Google一下吧
05/16 01:03, 3F
主要問題是如何從handler的 runnable那邊傳給socket ※ 編輯: kazumi66 (60.250.195.171), 05/16/2017 12:22:05

05/16 12:47, , 4F
如果寫個類別實作runnable,建構時把handler傳入,應該
05/16 12:47, 4F

05/16 12:47, , 5F
不困難吧。
05/16 12:47, 5F

05/16 14:41, , 6F
1 AsyncTask通常用在只用一次+短時間的作業
05/16 14:41, 6F

05/16 14:43, , 7F
2 Message有個obj public field,愛傳什麼就傳什麼
05/16 14:43, 7F

05/16 14:45, , 8F
3 Socket本來就是傳byte stream,反而是string才要另外處理
05/16 14:45, 8F

05/16 14:46, , 9F
4 yes
05/16 14:46, 9F

05/16 14:48, , 10F
如果你是要需要收送資料時才開socket,用完就關掉那就用你
05/16 14:48, 10F

05/16 14:53, , 11F
的AsyncTask寫法就好,如果是要保持連線、等不定時的回覆
05/16 14:53, 11F

05/16 14:54, , 12F
那要用另一個thread
05/16 14:54, 12F

05/16 14:55, , 13F
另外你的程式Handler、Runnable都是沒必要的,AsyncTask可
05/16 14:55, 13F

05/16 14:56, , 14F
以傳參數 → AsyncTask<Params, Progress, Result>
05/16 14:56, 14F
文章代碼(AID): #1P6QggB- (AndroidDev)
文章代碼(AID): #1P6QggB- (AndroidDev)