gpt4 book ai didi

java - 使用 Java 编写客户端通过 UDP 连接向服务器发送 HTTP 请求消息

转载 作者:行者123 更新时间:2023-12-01 15:59:18 25 4
gpt4 key购买 nike

我需要一个客户端向服务器发送 http 请求消息,但我不知道如何使用 http 1.1 在 UDP 中执行此操作

它需要在 method 字段中有一个特定的单词,在 url 字段中有一个特定的名称,在 version 字段中有一个特定的整数。

因此,如果我想发送一个 http 请求消息,其中方法字段中包含“inform”,url 字段中包含“host1”,版本字段中包含 40000,我该怎么做?

这是我现在拥有的,但它不使用http,我不知道如何更改它。

BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); 
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("THIS-PC");
byte[] sendData = new byte[128];
byte[] receiveData = new byte[128];
System.out.println("Enter:");
String request ="INFORM ";
String sentence = inFromUser.readLine();
// request.concat("/r/n");
request.concat(sentence);
// request.concat("/r/n");
sendData = sentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 40075);

clientSocket.send(sendPacket);
System.out.println("Packet sent");
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);

clientSocket.receive(receivePacket);
System.out.println("Packet received");
String reply = new String(receivePacket.getData());

System.out.println("FROM SERVER:" + reply);
clientSocket.close();

最佳答案

您必须为 HTTP 协议(protocol)实现 IEEE RFC?或者只是通过 UDP 进行模拟?

HTTP 是一种基于文本传输的协议(protocol),在 TCP/IP 上运行。HTTP 默认端口是 80,但您“可以”通过该端口运行数据报服务。

失去了 TCP/IP 的一些特殊且有用的方式,例如传递保证、顺序和正确的序列化。你真的必须这样做吗?

即使这样做了,您还需要编写一个使用 UDP 监听该端口的“服务”,所有 Web 服务器都使用 TCP,因为这是默认值并在 RFC 中指定。

此外,请阅读本文以了解有关以下内容的更多信息:

http://www.w3.org/Protocols/rfc2616/rfc2616.html

或者,如果您只是想要一个通过 UDP 发送和接收数据的简单应用程序,那么网络上有几个有关如何执行此操作的示例。

抱歉,如果这些都没有帮助。

关于java - 使用 Java 编写客户端通过 UDP 连接向服务器发送 HTTP 请求消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4319727/

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