【求助】android系统如何简单地访问服务器?

【求助】android系统如何简单地访问服务器?,第1张

Android的网络编程分为2种:基于http协议的,和基于socket的。Socket一般应用于社交聊天的应用中,这里关联的比较少就不讲了,我们来说说基于HTTP协议的编程。

基本原理 : 它的工作原理特别的简单,就是客户端向服务器发出一条HTTP 请求,服务器收到请求之后会返回一些数据给客户端,然后客户端再对这些数据进行解析和处理就可以了。

HTTP请求:HttpURLConnection 和 HttpClient

服务器端返回客户端的内容:

1)以HTML代码的形式返回。

2)以XML字符串的形式返回。返回的数据需要通过XML解析(SAX、DOM,Pull,等)器进行解析。

3)以json对象的方式返回。

1:android客户端通过service在后台通过servreScoket不断的accept,一旦有相应的socket到达,则启动一个线程去处理

2::在线程中处理完返回给我们android客户端的消息或任务之后,要将这种结果表现在ui上,这个步骤方法就比较多了,例如你可以发一个广播来通知ui,或者你可以通过一个static的handler来处理

service中的关键代码

private void startSocketServer()

{

if (!isStarted)

{

try

{

serverSocket = new ServerSocket( 6661 );

isStarted = true;

}

catch (Exception e)

{

// TODO: handle exception

}

// 启动线程处理

AcceptThread acceptThread = new AcceptThread();

acceptThreadstart();

}

}

class AcceptThread extends Thread

{

@Override

public void run()

{

while (isStarted)

{

try

{

// 阻塞接收

Socket client = serverSocketaccept();

initClientSocket( client );

}

catch (Exception e)

{

// TODO: handle exception

}

}

superrun();

}

}

private void initClientSocket(Socket client)

{

boolean isRunnable = true;

/

重置

/

if (cInputStream != null)

{

try

{

cInputStreamclose();

cInputStream = null;

}

catch (IOException e)

{

eprintStackTrace();

}

}

if (clientSocket != null)

{

try

{

clientSocketclose();

clientSocket = null;

}

catch (Exception e)

{

// TODO: handle exception

}

}

String resultStr = "";

clientSocket = client;

try

{

cInputStream = new DataInputStream( clientSocketgetInputStream() );

if (isRunnable)

{

StringBuffer sb1 = new StringBuffer();

int ss;

while ((ss = cInputStreamread()) != -1)

{

sb1append( (char) ss );

}

resultStr = sb1toString();

//发送广播

Intent intent = new Intent();

intentputExtra( "str", resultStr );

intentsetAction( "comjonereceiver" );

sendBroadcast( intent );

// Message msg = ((MainActivity)getApplicationContext())handlerobtainMessage();

// msgobj = resultStr;

// ((MainActivity)getApplicationContext())handlersendMessage( msg );

}

}

catch (Exception e)

{

// TODO Auto-generated catch block

isRunnable = false;

eprintStackTrace();

}

}

手机连接上WiFi却无法连接服务器的原因有:

1、WiFi本身问题,可能WiFi未正常连接,导致无法上网。

2、路由器问题,可能路由器过热或者损坏。

3、可能宽带欠费,导致无法上网。

4、WiFi名字包含中文,导致部分手机无法连接上网。

5、手机系统问题,可能系统出现了问题,导致连接上了WiFi却无法上网。

建议解决办法:

1、使用其他手机或设备连接WiFi试试能否上网,排除WiFi本身问题;

2、重启一下路由器试试,或者将路由器恢复一下出厂设置,然后重新拨号上网,并根据设置向导重新设置WiFi,或者更换新路由器再进行拨号连接上网;

3、联系一下宽带客服,确认宽带账号是否有异常,如欠费,充值一下宽带,然后再拨号连接试试;

4、如WiFi名字包含中文,建议修改为英文或者英文加数字的组合再进行连接;

5、如以上原因都排除,那么久很有可能是电脑系统问题了,建议恢复一下出厂设置。看看能否解决问题。

linux 可以几年不重启,因为

1、耗内存程序少,不容易出现内存问题而造成的重启

2、不重启的那是没有开桌面,仅仅用控制台的话省去好多消耗,(比如图形处理,动画处理)

3、软件垃圾,你可能是装的软件有不协调的地方,linux 不会弄那些乱七八糟的东西

4、android是精简的linux,很多东西精简掉了,(也有可能是手机商故意把实用的搞掉,你一个手机用十年他还要不要活)

方法如下:

1、较新版本的Android系统默认在设置是不显示开发人员选项的,因此进入设置->关于手机->多次点击版本号(一定次数之后设置中出现开发人员选项),开发人员选择出现之后就无需再设置了。

2、设置->开发人员选项(开启)->选择USB调试,之后一般会出现允许连接调试和安装调试证书的选项,都选择是。大部分情况下到这个时候Eclipse开发环境就能够识别手机并可以进行软件的编译下载安装与调试。

3、USB连接方式需要选择正确,如下图四个选项中,只有选中PC助手方式,才可以被电脑和开发环境识别。

4、如果还不能识别有的时候是将Android设备与PC机通过USB接口相连时未能正确,可以尝试使用刷机软件如甜椒刷机助手,启动软件后连接Android设备,如果设备没有正确安装或者驱动程序版本不正确,它会自动下载和安装合适的驱动程序。

5、还有就是Manifestxml中minSdkVersion的的API level不能高于设备上Android系统版本对应的API level。如下图,对应于Android442对应的API 19,如果minSdkVersion>=20,则Android Device Chooser中无法显示设备。

6、还有Eclipse开发环境通过adb连接调试Android设备,有一些刷机软件也会运行adb程序,造成与开发环境的adb调试器冲突,需要关闭刷机软件,杀死所有adb进程重启开发环境。

温馨提示:

1、正确连接设备,打开USB调试。

2、正确安装设备驱动。

3、Sdk最低版本号设置不能高于设备的系统版本。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 【求助】android系统如何简单地访问服务器?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情