个人理解,android 上的Socket,read总是阻塞的,所以好像没明白楼主的意思。
能不能描述下最终的目的,比如希望read是阻塞的吗?或者希望它挂起的目的是什么?也许对解决问题有用。(^-^)
能不能描述下最终的目的,比如希望read是阻塞的吗?或者希望它挂起的目的是什么?也许对解决问题有用。(^-^)
解决方案 »
- NDK编译CPP文件的问题
- android布局文件中,EditText 默认情况下,键盘会弹出的问题,在线等
- android SurfaceView 全屏播放问题
- 我有几个Android相关的问题,大家看看会不会啊
- 关于绘图,函数绘图的一点疑问
- android APP经过怎样处理,能在PC上运行?
- 用SlidingDrawer的问题???如何把content和handle交换位置?
- Android开发 SlingMenu的使用无焦点问题
- android监听自身应用覆盖安装
- 求大神。。小弟刚进入android
- android改写XML之后,调试注意事项
- Android 使用ShareSdk一键分享 到人人网 失败(急!!!!)
@Override
public void run() {
try {
Socket socket = new Socket(Proxy.NO_PROXY);
InetSocketAddress isa=new InetSocketAddress(host,port);
socket.connect(isa);
//初始化socket输入输出流
Reader reader=new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
Log.e("##################输入信息包读取线程###############", "PacketReader start");
try {
char[] buf=new char[128];
int len=0;
while (true) {
Log.e("+++++++++++++++++NotificationService+++++++++++++++++++++start", "准备读取,正在阻塞...");
len=reader.read(buf);
Log.e("+++++++++++++++++NotificationService+++++++++++++++++++++end", "已经读取length:"+len);
}
} catch (IOException e) {
e.printStackTrace();
//输入异常打断线程
// if(pr!=null){
// if(pr.getFlag()){
// pr.stopSelf();
//
// socketManager.startReader();
// }else{
// pr.stopSelf();
// }
// }else{
// socketManager.startReader();
// }
}
} catch (UnknownHostException e) {
e.printStackTrace();
//连接失败
//清理原先的对象
//进行重连
// connectToPush();
} catch (IOException e) {
e.printStackTrace();
//登录包发送异常
//连接失败
//清理原先的对象
//进行重连
// connectToPush();
}
}
});