Android 说说网络编程

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();


from:http://www.1000phone.net/forum.php?mod=viewthread&tid=4834&highlight=%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值