当前位置: 代码迷 >> Android >> 关于多线程与socket的几个小问题
  详细解决方案

关于多线程与socket的几个小问题

热度:52   发布时间:2016-05-01 21:40:52.0
关于多线程与socket的几个问题
我在MainActivity里面开启了一个线程监听连接,客户端使用 PC机,通过WIFI相连

1、希望这个线程accept连接后,将这个socket传递给一个新的Activity,在新的Activity里面再开一个线程接收数据,但是貌似Bundle支持的数据类型里面没有socket啊,刚接触ANDROID开发,基础不牢。。。
2、在线程里面:

//A模块连接处理线程
  private void startServerA() throws IOException
  {
  ServerSocketA.Listen(9220);
  ModuleAConnected=1;
while(ServerSocketA.socket.isConnected()==true)
  {
;
}
ModuleAConnected=0;
  }
但是如果在这个函数里面加上对界面操作的语句,例如
TextView.setText("msg");程序立马挂掉,这是为什么?
3、用VB的Winsock控件 winsock.SendData "Hello" 如何在Android上解析?书上的例子解析不出来。。。。


------解决方案--------------------
1。为什么要传递socket,线程可以独立于activity的,会为什么要设计成在Activity里呢,java有这么多的设计模式呢。
2。线程不能直接操作UI
3。正常的java socket接收就行
------解决方案--------------------
1.首先消息有没有发过来,是接收不对还是没发过来
2.人为断开把socket也释放吧,如果要检测网络是否连接正常,加上心跳
3.关键你socket有没有close,如果没有close,那么连接通道还是存在。
  相关解决方案