android网络编程,unfortunately,socket has stopped

今天照着 android疯狂讲义 学习了一下android网络编程,来实现pc和android的通信,但是app一运行,就提示socket has stopped,接下来给出解决办法:

socket的操作不能在主线程中进行,你必须在开一个线程,你可以在main函数中new Thread,如下:

new Thread(){

 

@Override

public void run() {

// TODO Auto-generated method stub

try {

socket = new Socket("192.168.1.201", 30002);

br = new BufferedReader(new InputStreamReader(

socket.getInputStream()));

ling = br.readLine();

br.close();

socket.close();

 

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

super.run();

}

 

}.start();//记住得要start

原因是:当客户端读取服务器数据,返回数据后,线程会被阻塞,那如果把去读取数据的代码放在主线程中的话,那么主线程就被阻塞了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值