安卓socket超时时间太长?IP和端口设置之后能否保存

Android 码拜 8年前 (2016-05-29) 1022次浏览
本人的思路是这样的,
APP启动立马按照默认的IP和端口来连接。
假如连接失败则跳转到更改IP和PORT的界面去。

				mythread  = new Thread() 
				{
					   public void run()
					   {					   
					    try {					    
					    	//先读取IP和端口
					    	initdate();			    
					    	//mytoast = Toast.makeText(MainActivity.this, "create socket", Toast.LENGTH_LONG);
					    	Log.i(Tag, "开始创建socket");				    
						cSocket = new Socket(IP, PORT);
                                               //做事..
					       } catch (UnknownHostException e) {
							// TODO Auto-generated catch block
							Log.i(Tag, "99999999999999999999999");
							e.printStackTrace();
						} catch (IOException e) {
							// TODO Auto-generated catch block
							Log.i(Tag, "88888888888888888888888");
							e.printStackTrace();
							//连接失败的时候跳转去设置IP和PORT
							Intent intent = new Intent();
							intent.setClass(MainActivity.this, SetIPandPORT.class);
							Log.i(Tag, "跳转至设置界面");
							startActivity(intent);
						}
					  }
                               }

问题1,
现在发现,从这个“开始创建”出现到“跳转至设置界面“,中间的超时时间很长,这个怎么设置能让它检测到10S内没连上,就跳转设置?
问题2,
本人在设置IP和PORT的界面里,设置之后,这个IP和PORT能不能放到一个文件去保存下来,下次打开APP,就可以直接读取这个文件,获取IP和PORT,然后能直接连上服务端?问一下这个又是怎么做?
问题3,
设置完成之后,是应该重启APP还是怎样?原因是本人设置完了,回到主对话框,没办法再重启那个线程了。设置好的IP和PORT并不能立马生效。重启APP又怎么做?
新手,代码整了2天,这块还是没整明白。诚心求指导。
觉得这里回复比较麻烦的,也可以使用企鹅26981591
谢谢。

解决方案

80

这几个问题,可以看出你是个安卓新手,甚至是编程新手。
1.  tcp连接导致阻塞,超时,要么异步,要么线程。你可以开线程专门负责连接。另开个工作线程等待连接成功或超时
cSocket = new Socket(IP, PORT);  导致阻塞,超时

2. 涉及到文件存储,安卓有多种方案。
1、文件
2、SharedPreferences(偏好参数)
3、SQLite数据库
4、内容提供者(Content provider)
5、网络
你只保存ip port 可以使用简单的SharedPreferences    例子 http://blog.csdn.net/wulianghuan/article/details/8607628
3. 不必重启。只是要考虑你到底程序要干嘛就写。先设计好流程图。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明安卓socket超时时间太长?IP和端口设置之后能否保存
喜欢 (0)
[1034331897@qq.com]
分享 (0)