android 4.0以上socket开发问题
public boolean sendLoginInfo(Object obj){boolean b=false;
try {
s=new Socket();
try{
s.connect(new InetSocketAddress("10.40.0.22",15000),2000);
}catch(SocketTimeoutException e){
//连接服务器超时
return false;
}
ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
oos.writeObject(obj);
ObjectInputStream ois=new ObjectInputStream(s.getInputStream());
YQMessage ms=(YQMessage)ois.readObject();
if(ms.getType().equals(YQMessageType.SUCCESS)){
//个人信息
MainActivity.myInfo=ms.getContent();
//创建一个该账号和服务器保持连接的线程
ClientConServerThread ccst=new ClientConServerThread(context,s);
//启动该通信线程
ccst.start();
//加入到管理类中
ManageClientConServer.addClientConServerThread(((User)obj).getAccount(), ccst);
b=true;
}else if(ms.getType().equals(YQMessageType.FAIL)){
b=false;
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return b;
}
--------------------编程问答-------------------- 什么问题?就代码。
4.0里面这个 一般是放在线程里面去运行的,否则有错误发生。其他不知道你有什么错误。
s=new Socket();
try{
s.connect(new InetSocketAddress("10.40.0.22",15000),2000);
}catch(SocketTimeoutException e){
//连接服务器超时
return false;
}
--------------------编程问答-------------------- 就是在4.0socket不能用,线程怎么使用?求解 --------------------编程问答-------------------- android4.0以上对网络操作部分做了修改,你要做的话只能
1.把一切跟网络相关的操作放进子线程里
2.或者用NDK,自己把网络操作做成so库,再在上面调用
补充:移动开发 , Android