gpt4 book ai didi

Java 将数据从服务器发送回客户端

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:28:01 25 4
gpt4 key购买 nike

晚上好,我这里有服务器和客户端。

网络服务器

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 从客户端发送到服务器并在服务器上增加它。但我不知道如何将新的 integer newclientno 发送回客户端并将其显示在控制台上。有什么建议我做错了吗?

最佳答案

好吧,我发现了我的错误,我必须在服务器中添加一个 header 才能完成连接。我已经有但没有注意到它。

t.sendResponseHeaders(200, 0);

关于Java 将数据从服务器发送回客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33465705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com