Java網絡編程從入門到精通(26):在服務端接收和發送數據 – JAVA編程語言程序開發技術文章

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


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


<!–

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>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

“);
            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”);
       &nbs

發佈留言