网络协议之二

基于socket的用法 缓存

  服务器端: 服务器

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

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

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

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

  Socket 的交互经过流来完成,便是说传送的字节流,所以任何文件均可以在上面传送。谁打开的记得要关上。 code

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

  客户端: get

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

  取得输入和输出        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();

  流程记录就到此为止。

相关文章
相关标签/搜索