作者kazumi66 (Bryce(。・∀・。)☆彡)
看板AndroidDev
标题[问题] socket传byte[]相关问题
时间Mon May 15 21:18:29 2017
第一次写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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1494854314.A.2FE.html
1F:推 areyo: byte 和string不是可以转换吗??? 05/15 21:41
这部分我再找找看
2F:→ y3k: .getOutputStream()跟.getInputStream() 05/16 01:02
3F:→ y3k: TCP Socket也只有这两个可以玩而已 Google一下吧 05/16 01:03
主要问题是如何从handler的 runnable那边传给socket
※ 编辑: kazumi66 (60.250.195.171), 05/16/2017 12:22:05
4F:→ pttworld: 如果写个类别实作runnable,建构时把handler传入,应该 05/16 12:47
5F:→ pttworld: 不困难吧。 05/16 12:47
6F:→ ssccg: 1 AsyncTask通常用在只用一次+短时间的作业 05/16 14:41
7F:→ ssccg: 2 Message有个obj public field,爱传什麽就传什麽 05/16 14:43
8F:→ ssccg: 3 Socket本来就是传byte stream,反而是string才要另外处理 05/16 14:45
9F:→ ssccg: 4 yes 05/16 14:46
10F:→ ssccg: 如果你是要需要收送资料时才开socket,用完就关掉那就用你 05/16 14:48
11F:→ ssccg: 的AsyncTask写法就好,如果是要保持连线、等不定时的回覆 05/16 14:53
12F:→ ssccg: 那要用另一个thread 05/16 14:54
13F:→ ssccg: 另外你的程式Handler、Runnable都是没必要的,AsyncTask可 05/16 14:55
14F:→ ssccg: 以传参数 → AsyncTask<Params, Progress, Result> 05/16 14:56