<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數據加載中……

    Java網絡編程從入門到精通(30):定制accept方法

    本文為原創,如需轉載,請注明作者和出處,謝謝!

    上一篇:Java網絡編程從入門到精通(29):服務端Socket的選項

    使用ServerSocket類的implAccept方法可以使用accept方法返回一個Socket子類對象。但implAcceptprotected方法,因此,必須在ServerSocket類的子類中覆蓋accept方法,然后在accept方法中使用implAccept方法重新設置Socket對象。implAccept方法的定義如下:

    protected final void implAccept(Socket s) throws IOException

    只要通過implAccept方法設置一個未連接的Socket子類對象,accept方法就會返回一個已經連接的Socket子類對象(accept返回的是Socket對象,要想得到Socket子類對象,必須進行類型轉換)。在大多數時候不需要改變accept方法的行為,但有時需要一個有更多特性的Socket類。通過implAccept方法就可以達到這個目的。下面的代碼定義了一個從Socket繼承的HttpSocket類,這個類除了具有Socket類的一切特性外,還增加了一個方法getRequestHeaders,用于返回HTTP請求的頭信息。

      package server;
      
      
    import java.net.*;
      
    import java.io.*;
      
      
    class HttpSocket extends Socket
      {
          
    public String getRequestHeaders() throws Exception
          {
              InputStreamReader isr 
    = new InputStreamReader(getInputStream());
              BufferedReader br 
    = new BufferedReader(isr);
              String s 
    = "", result = "";
              
    while (!(s = br.readLine()).equals(""))
                  result 
    = result + s + "\r\n";
              
    return result;
          }
      }
      
      
    class HttpServerSocket extends ServerSocket
      {
          
    public HttpServerSocket(int port) throws IOException
          {
              
    super(port);
          }
          
    public Socket accept() throws IOException  // 覆蓋accept方法
          {
              Socket s 
    = new HttpSocket();
              implAccept(s);   
    // 將accept方法返回的對象類型設為HttpSocket
              return s;
          }
      }
      
    public class CustomAccept
      {
          
    public static void main(String[] args) throws Exception
          {
              HttpServerSocket httpServerSocket 
    = new HttpServerSocket(1234);
              HttpSocket httpSocket 
    = (HttpSocket) httpServerSocket.accept();
              System.out.println(httpSocket.getRequestHeaders()); 
    // 向控制臺輸出HTTP請求頭
              httpServerSocket.close();
          }
      }

    測試

       執行如下命令:

    java server.CustomAccept

    在IE的地址欄中輸入如下Url: 

    http://localhost:1234

    CustomAccept在控制臺中的運行結果:   

    GET / HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    UA-CPU: x86
    Accept-Encoding: gzip
    , deflate
    User-Agent: Mozilla/
    4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; InfoPath.2)
    Host: localhost:1234
    Connection: Keep-Alive

        上面的運行結果就是IE向服務端發出的HTTP請求頭的內容。這個運行結果會根據客戶機配置的不同而有所差異。

    下一篇:
    Java網絡編程從入門到精通(31):非阻塞I/O簡介





    Android開發完全講義(第2版)(本書版權已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2009-08-15 16:57 銀河使者 閱讀(2859) 評論(4)  編輯  收藏 所屬分類: java 原創網絡編程

    評論

    # re: Java網絡編程從入門到精通(30):定制accept方法[未登錄]  回復  更多評論   

    http://www.jinshan365.com/bbs
    2009-08-15 23:29 | wang

    # re: Java網絡編程從入門到精通(30):定制accept方法[未登錄]  回復  更多評論   

    這樣啊`~
    2009-08-15 23:29 | wang

    # re: Java網絡編程從入門到精通(30):定制accept方法[未登錄]  回復  更多評論   

    http://www.jinshan365.com/home
    2009-08-15 23:30 | wang

    # re: Java網絡編程從入門到精通(30):定制accept方法  回復  更多評論   

    不錯哦11
    2009-08-16 11:05 | 戴爾筆記本
    主站蜘蛛池模板: 免费99热在线观看| 成人女人A级毛片免费软件| 国产区卡一卡二卡三乱码免费| 亚洲熟妇色自偷自拍另类| 国产偷伦视频免费观看| 国产v亚洲v天堂无码网站| 九九九精品视频免费| 亚洲欧洲日产国码一级毛片| 黄色毛片视频免费| 亚洲精品国产V片在线观看| 看成年女人免费午夜视频| 亚洲AV无码乱码在线观看| 国产免费人成视频在线播放播| 亚洲一区二区三区影院| 免费人成黄页在线观看日本| 亚洲AV日韩AV天堂一区二区三区| 免费无码H肉动漫在线观看麻豆| 亚洲高清在线视频| 国产成人精品久久免费动漫 | 成人免费一区二区无码视频| 中国china体内裑精亚洲日本| 日韩精品视频免费网址| 日本永久免费a∨在线视频| 久久精品国产亚洲Aⅴ蜜臀色欲| 嫩草在线视频www免费看| 噜噜噜亚洲色成人网站∨| 日韩欧美一区二区三区免费观看 | 国产麻豆一精品一AV一免费| 亚洲综合一区二区精品导航 | 国产亚洲高清在线精品不卡| 亚洲一区二区精品视频| 久久成人免费大片| 亚洲熟妇av午夜无码不卡| 四虎在线播放免费永久视频 | 午夜成人免费视频| 日韩在线观看免费完整版视频| 久久精品国产精品亚洲蜜月| 成人免费福利视频| 特级毛片aaaa级毛片免费| 国产亚洲精品无码成人| 国产情侣激情在线视频免费看|