簡體   English   中英

Java將數據從服務器發送回客戶端

[英]Java Send Data from server back to client

晚上好,我在這里有這個服務器和客戶端。

網絡服務器

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;

public class WebServer {



public static void main(String[] args) throws Exception {
    HttpServer http = HttpServer.create(new InetSocketAddress(8000), 0);
    http.createContext("/test", new MyHandler());
    http.setExecutor(null); // creates a default executor
    http.start();

    //NimServer nimserver = new NimServer(32778);
    //nimserver.serve();

}




static class MyHandler implements HttpHandler {
    //AtomicInteger atomicInteger = new AtomicInteger(0); 
    //int theValue = atomicInteger.get(); 
    @Override
    public void handle(final HttpExchange t) throws IOException {
        final String response;

        final String requestMethod = t.getRequestMethod();
        if ("GET".equals(requestMethod)) {
           // response = String.format("Besuche: %d%n", atomicInteger.addAndGet(1));
        }
        else if ("POST".equals(requestMethod)) {
           // atomicInteger.set(0);
            int clientno = new DataInputStream(t.getRequestBody()).readInt();
            System.out.println("Send from Client: " + clientno);
            int newclientno = clientno + 1;
            System.out.println("Increased by Server: " + newclientno);
            new DataOutputStream(t.getResponseBody()).writeInt(newclientno);

        }
        else {
            throw new IOException("Unsupported method");
        }

        //t.sendResponseHeaders(200, response.length());
        //final OutputStream os = t.getResponseBody();
        //os.write(newclientno);
        //os.close();

    }
}



}

HttpClient的

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

public class HttpClient {

public static int clientno = 0;

public static void main(String[] args) throws Exception {
//NimMessage clientnumber = new NimMessage();
//clientnumber.nachricht = "Client No: " + clientno;

URL test = new URL("http://localhost:8000/test");
HttpURLConnection connect = (HttpURLConnection) test.openConnection();
connect.setDoOutput(true);
connect.setDoInput(true);
connect.setRequestMethod("POST");
new DataOutputStream(connect.getOutputStream ()).writeInt(clientno);//send int out
int newclientno = new DataInputStream(connect.getInputStream()).readInt();
System.out.println("Send from Server: " + newclientno);
//BufferedReader in = new BufferedReader(new InputStreamReader(connect.getInputStream()));
//String inputLine;





//System.out.println(clientnumber.createJsonNachricht().toString());




//while ((inputLine = in.readLine()) != null) 
  //  System.out.println(inputLine);
//in.close();

}


}

我能夠將整數clinetno從客戶端發送到服務器,並在服務器上增加它。 但是我不知道如何將新的整數newclientno發送回客戶端並在控制台上顯示它。 有什么建議我做錯了嗎?

好的,我發現了自己的錯誤,我必須在服務器中添加標題以完成連接。 我已經有但沒有注意到它。

t.sendResponseHeaders(200, 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM