Socket长连接问题 个人理解,android 上的Socket,read总是阻塞的,所以好像没明白楼主的意思。能不能描述下最终的目的,比如希望read是阻塞的吗?或者希望它挂起的目的是什么?也许对解决问题有用。(^-^) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 new Runnable(){ @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(); } } }); 无线循环里的read方法不阻塞,执行后,不停的打印“已经读取length:-1"” 我试过,socket连接的状态是true的 一个下拉的ActionBar 怎么能在进入的时候直接定位到某一项? android读取sd卡上的xml文件并解析 类的初始化的问题 android开发,寻求开发思路 android SQLite 怎样显示多个选择对话框? android 关闭进程问题 killBackgroundProcesses无效 android机票查询预订系统,工作量评估,一个人可以完成吗 UltimateRecyclerView 如何监听拖拽已经结束 有哪些小伙伴做epub阅读器。 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();
}
}
});