作者LaPass (LaPass)
看板AndroidDev
标题Re: [问题] socket送出字串
时间Sun Sep 25 14:57:59 2011
自己之前在找网路连线的方法时
找到ObjectInputStream、ObjectOutputStream这个东西
这东西蛮方便的,只要implements Serializable介面
就连自己写的物件都能发送出去
至於int、String、Date等基础类型
只要去找java doc,看到有实作Serializable,就能直接传过去
甚至连android.location.Location之类的都能直接传送出去
这是那时写的一个小东西
http://www.megaupload.com/?d=L5FYRI0V
使用方法是:
socket s = new socket();
//(中略,建立一条连线,取得一条已经连线的socket)
//server端也一样
SocketListener SL = new SocketListener(s);
然後,就可以透过 SL.SendNext(Object obj) 送出物件给另一方
或是透过 SL.GetNext() 接受物件
这里的SL.GetNext()不会block,如果拿不到东西只会直接传回null
所以可以在android里的UI Thread执行,而不会造成ANR
另外,有个几个要注意的地方是
假设自己写了个class,在手机中的套件名称是com.pack1.test01
那server端的com.pack1.test01也必须要有那个class
否则会出现 EOFException
以及,在关闭时要记得呼叫CloseLink()
要不然执行绪会一直执行下去
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.233.158.97
1F:推 fj779911:非常感谢! 我来试试看^^ 09/25 23:22