您的位置:首页 > 移动开发 > Android开发

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上看出问题所在的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: