广州达内Android培训logo
达内首页 > 职业前景 > Android网络编程的Socket和http协议
Android网络编程的Socket和http协议
作者:广州达内科技 更新时间:2012-07-05 13:55 来源: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.nbtarena.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();

  流程记录就到此为止。


上一篇:浅析Android防止内存溢出问题
下一篇:IT人求职如何搞定外企老板?

相关资讯

  • [2012-07-05 14:20:13] IT人求职如何搞定外企老板?
  • [2012-07-05 13:55:51] Android网络编程的Socket和http协议
  • [2012-07-02 17:35:38] 浅析Android防止内存溢出问题
  • [2012-06-29 16:51:22] 给Android应用开发团队的5点建议
  • [2012-06-27 15:10:45] 广州达内科技剖析Android系统架构说明介绍
  • [2012-06-26 16:59:45] 广州达内科技:PHP数据访问对象模式
  • 【2012年8月6日】
    Java 软件工程师就业班
    >>热招中!


    【2012年8月6日】
    3G-Android 工程师就业班
    >>热招中!


    【2012年8月6日】
    3G-Android 工程师周末班
    >>热招中!

    【2012年8月6日】
    软件测试 工程师就业班
    >>热招中!