android的网络编程分为2种:基于socket的,和基于http协议的。

基于socket的用法

服务器端:

先启动一个服务器端的socket ServerSocket svr = new ServerSocket(8989);

开始侦听请求         Socket s = svr.accept();

取得输入和输出        DataInputStream dis = new DataInputStream(s.getInputStream());

DataOutputStream dos = new DataOutputStream(s.getOutputStream());

Socket 的交互通过流来完成,即是说传送的字节流,因此任何文件都可以在上面传送。谁打开的记得要关上。

用DataInputStream/DataOutputStream来进行包装是因为我们想要他们对基本数据类型的读写功能readInt(),writeInt(),readUTF(),writeUTF()等等。

客户端:

发起一个socket连接      Socket s = new Socket("192.168.1.200",8989);

取得输入和输出        DataInputStream dis = new DataInputStream(s.getInputStream());

DataOutputStream dos = new DataOutputStream(s.getOutputStream());

之后就可以相互通信了。谁打开的记得要关上。

基于Http协议

一般是发送请求到某个应用服务器。此时需要用到HttpURLConnection

先取得HttpURLConnection urlConn = new URL("http://www.google.com").openConnection();

设置标志

urlConn.setDoOutput(true); urlConn.setDoInput(true);//post的情况下需要设置DoOutput为true

urlConn.setRequestMethod("POST");

urlConn.setUseCache(false);//设置是否用缓存

urlConn.setRequestProperty("Content-type","application/x-www-form-urlencoded");//设置content-type

获得输出流,便于想服务器发送信息。

DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());

望流里面写请求参数

dos.writeBytes("name="+URLEncoder.encode("chenmouren","gb2312");

dos.flush();dos.close();//发送完后马上关闭。

获得输入流,取数据

BufferReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));

reader.readLine();//用 !=null来判断是否结束

reader.close();

读完了记得关闭connection  urlConn.disconnect();

流程记录就到此为止。

更多相关文章

  1. Android 上传图片到服务器(多文件上传)
  2. android连接服务器下载文件工具类
  3. Socket通信:Linux服务器与多个Android客户端
  4. 服务器向Android写一个对象
  5. Android与(Servlet)服务器交互
  6. Android与PHP服务器交互
  7. android web服务器
  8. android 上传文件到服务器

随机推荐

  1. [置顶] OwnCloud开源项目之一导入Eclipse
  2. Android(安卓)极光推送
  3. 09 - android Spinner 下拉列表
  4. Ubuntu下使用Android实体机调试前需要修
  5. Android天气预报开发。
  6. 向Android中集成开源项目的一般步骤
  7. android sdk 让SDK Manager来自动安装上
  8. MotionEvent事件在onInterceptTouchEvent
  9. 永久破解Tattoo root权限
  10. android图片加载处理