android socket通信不成功
2013-09-24 22:40
513 查看
尼玛原来socket通信都好好的, 后面在应用加了一个横屏的代码,死活是通信不了,折腾了三天才搞清楚原因,其实一开始就应该怀疑是新加入的代码引起的,可是。。。
onCreate() {
....
if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
...
new Thread(){
public void run() {
socket = new Socket("192.168.2.110", 8000);
os = socket.getOutputStream();
is = socket.getInputStream();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dis=new DataInputStream(is);
ps=new PrintStream(os);
}
}
}
加入上面的代码后,会导致onCreate被调用两次,由于socket的建立我是在onCreate回调里在另一个线程里完成的(在主线程里创建socket运行时会报错), 因此会建立两个socket到服务端的连接,而我在服务端没有对多客户支持,所以后续的触摸事件监听函数里实际上用的是第二个socket对应的输出流,而服务端绑定的是第一个socket对应的输出流,所以才会出现收不到数据的情况。。。咳, 还是从log上看出问题所在的
onCreate() {
....
if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
...
new Thread(){
public void run() {
socket = new Socket("192.168.2.110", 8000);
os = socket.getOutputStream();
is = socket.getInputStream();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dis=new DataInputStream(is);
ps=new PrintStream(os);
}
}
}
加入上面的代码后,会导致onCreate被调用两次,由于socket的建立我是在onCreate回调里在另一个线程里完成的(在主线程里创建socket运行时会报错), 因此会建立两个socket到服务端的连接,而我在服务端没有对多客户支持,所以后续的触摸事件监听函数里实际上用的是第二个socket对应的输出流,而服务端绑定的是第一个socket对应的输出流,所以才会出现收不到数据的情况。。。咳, 还是从log上看出问题所在的
相关文章推荐
- 【Android基础入门〖3〗】四大组件之Activity
- 【Android】实现动态显示隐藏密码输入框的内容
- Android项目导入出现问题解决方案
- Android SDK下载和更新失败的解决方法
- Android-JNI编程-图文解析
- 【Android基础入门〖6〗】四大组件之ContentProvider
- Android 开发常用代码片段
- android学习日记(Handler_1)
- android导入项目@override编译错误解决方法
- Android程序运行时权限与文件系统权限的区别
- Android开发学习笔记:浅谈GridView
- android:EditText属性/去边框
- android listview 属性
- Android ListView控件基本用法以及范例
- android位置属性
- Android的AlertDialog详解
- Android layout属性大全
- Android: 让一个EditText失去焦点,setFocusableInTouchMode与setFocusable 效果不一样
- android向Servlet发送请求无效
- android xml解析 XmlPullParser的使用