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 Studio第三十八期 - HIOS跳转协议解决URI跳转原生页面并
  3. 基于TCP/IP协议的Java服务端与Android客户端的Socket通信
  4. Android发送数据到web服务器4种方式
  5. android中客服端和服务器端的链接
  6. Android SDK代理服务器解决国内不能更新下载问题
  7. Android 上传图片到服务器(多文件上传)

随机推荐

  1. Android 事件
  2. android 操作剪切板
  3. AudioManager音量控制
  4. Android 连接加密网络
  5. [zz]一个JNI下c和java程序范例
  6. 【android】性能优化五篇(推荐)
  7. android, contentProvider 获取通讯录
  8. android 打包app,以及签名
  9. 自定义android Dialog
  10. Android 屏幕真实分辨率获取