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

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

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

    夢想飛翔

    自強不息
    posts - 111, comments - 30, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    http://www.tkk7.com/nokiaguy/archive/2009/07/20/287462.html


    在建立完ServerSocket對象后,通過accept方法返回的Socket對象,服務端就可以和客戶端進行數據交互。

    Socket類和ServerSocket類都有兩個得到輸入輸出流的方法:getInputStreamgetOutputStream。對于Socket類而言,使用getInputStream方法得到的InputStream是從服務端獲取數據,而getOutputStream方法得到的OutputStream是向服務端發送數據。而ServerSocketgetInputStreamgetOutputStream方法也類似。InputStream從客戶端讀取數據,OutputStream向客戶端發送數據。下面的代碼是一個接收HTTP請求,并返回HTTP請求頭信息的程序,它演示了ServerSocket類如何讀取和發送來自客戶端的數據。

    package server;

    import java.net.*;
    import java.io.*;

    public class HttpEchoServer extends Thread
    {
        
    private Socket socket;
        
    public void run()
        {
            
    try
            {
                InputStreamReader isr 
    = new InputStreamReader(socket
                                .getInputStream());
                BufferedReader br 
    = new BufferedReader(isr);
                OutputStreamWriter osw 
    = new OutputStreamWriter(socket
                                .getOutputStream());
                osw.write(
    "HTTP/1.1 200 OK\r\n\r\n");
                String s 
    = "";
                
    while (!(s = br.readLine()).equals(""))
                    osw.write(
    "<html><body>" + s + "<br></body></html>");
                osw.flush();
                socket.close();
            }
            
    catch (Exception e)
            {
            }
        }
        
    public HttpEchoServer(Socket socket)
        {
            
    this.socket = socket;
        }
        
    public static void main(String[] args) throws Exception
        {
            ServerSocket serverSocket 
    = new ServerSocket(8888);
            System.out.println(
    "服務器已經啟動,端口:8888");
            
    while (true)
            {
                Socket socket 
    = serverSocket.accept();
                
    new HttpEchoServer(socket).start();
            }
        }
    }

    編譯并運行HttpEchoServer后,在IE的地址欄中輸入URLhttp://localhost:8888。輸出結果如圖1所示。

      上面的代碼并未驗證HTTP請求類型,因此,GETPOSTHEADHTTP請求都可以得到回應。在接收客戶端請求后,只向客戶端輸出了一行HTTP響應頭信息(包括響應碼和HTTP版本號),對于HTTP響應頭來說,這一行是必須有的,其他的頭字段都是可選的。上面的代碼每讀一行請求頭信息,就向客戶端寫一行響應信息。最后使用了flush方法將輸出緩沖區中的內容發送的客戶端。這是必須的,只要使用OutputStream,在最后就必須要調用flush方法(Socket類中使用OutputStream也是一樣)


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 四虎永久免费网站免费观看| 无码国产精品一区二区免费I6| 亚洲国产成人精品无码久久久久久综合 | 一级午夜免费视频| 亚洲国产精品视频| 草久免费在线观看网站| 亚洲真人日本在线| 国产一区二区三区免费| 亚洲精品综合一二三区在线| 久久国产色AV免费观看| 亚洲乱码一二三四五六区| 最近最好的中文字幕2019免费 | 亚洲AV性色在线观看| 日本免费一区尤物| 青娱乐在线视频免费观看| 亚洲精品国产精品乱码不卞| 国产成人精品免费大全| 国产亚洲精品观看91在线| 免费A级毛片在线播放| 亚洲午夜国产精品| 日本免费无遮挡吸乳视频电影| 国产精品亚洲色图| 亚洲香蕉网久久综合影视| 91成人免费观看| 亚洲精品美女久久久久久久| 免费欧洲毛片A级视频无风险| 一区二区三区在线免费| 亚洲an天堂an在线观看| www.黄色免费网站| 九九九国产精品成人免费视频| 亚洲日韩国产精品第一页一区| 51视频精品全部免费最新| 亚洲欧美国产日韩av野草社区| 亚洲国产精品尤物yw在线| 久久亚洲免费视频| 亚洲JIZZJIZZ妇女| 国产亚洲一区二区精品| a级毛片无码免费真人| 国产人成网在线播放VA免费| 亚洲av成人一区二区三区| 亚洲国产精品人人做人人爽|