Android-android 用socket连接服务器,程序异常怎么解决?

发布于 2016-11-26 12:02:38 字数 1049 浏览 1231 评论 1

android 用socket连接服务器,但是如果有如下几种原因:
服务器没有打开、
客户端要连接的IP不对、
Server和Client的端口不一致、
客户端与服务器的接收和发送没有一一对应,
导致等待超时,出现异常,程序退出,这如何解决?
我指的是如何判断socket不能连接而给出提示但程序不会异常退出。
按钮监听的:
public void MyListener(View target) throws UnknownHostException, IOException, TimeoutException{
switch (target.getId()) {
case R.id.button01:
//房间一,主灯
Action(0x00, 0x05, 0x01, 0x29, 0x3D, 0x00,0x00, 0x00, 0x56);
}

socket的:
public void Action(int a,int b,int c,int d,int e,int f,int g,int h,int i) throws UnknownHostException, IOException, TimeoutException {
OutputStream os = Singleton.getSocket().getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.write(a);
dos.write(b);
dos.write(c);
dos.write(d);
dos.write(e);
dos.write(f);
dos.write(g);
dos.write(h);
dos.write(i);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏爱自由 2017-09-16 18:23:23

用try catch把你的整个请求服务器的方法包起来。

public void Action(int a,int b,int c,int d,int e,int f,int g,int h,int i){

try {
OutputStream os = Singleton.getSocket().getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.write(a);
dos.write(b);
dos.write(c);
dos.write(d);
dos.write(e);
dos.write(f);
dos.write(g);
dos.write(h);
dos.write(i);
catch (UnknownHostException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}catch (TimeoutException e){
e.printStackTrace();
}
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文