[英]programming a client to send a HTTP request message to a server with a UDP connection in Java
我需要客戶端將http請求消息發送到服務器,但是我不知道如何使用http 1.1在UDP中進行操作
它需要在method字段中有一個特定的單詞,在url字段中有一個特定的名稱,在version字段中有一個特定的整數。
因此,如果我想發送一個http請求消息,該消息在method字段中具有“ inform”,在url字段中具有“ host1”,而在version字段中具有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協議實現IEEE RFC? 還是僅僅是基於UDP的模擬?
HTTP是在TCP / IP上運行的基於文本傳輸的協議。 HTTP默認端口為80,但是您可以通過該端口“運行”數據報服務。
丟失TCP / IP的某些特定且有用的方式,例如提供保證,訂購和正確的序列化。 您真的必須這樣做嗎?
即使這樣做,您也將需要編寫一個使用UDP在該端口上偵聽的“服務”,所有Web服務器都使用TCP,因為這是默認設置,並在RFC中指定。
另外,請閱讀此內容以獲取有關以下內容的更多信息:
http://www.w3.org/Protocols/rfc2616/rfc2616.html
或者,如果您只需要一個簡單的通過UDP發送和接收數據的應用程序,則可以使用幾個示例在網絡上進行操作。
抱歉,如果沒有幫助。
(a)您將需要使用UDP的HTTP服務器。 你真的有嗎?
(b)您需要在此客戶端代碼中實現HTTP協議。 我看不到有任何嘗試。 您要做的只是發送直接從控制台讀取的行。 根本沒有HTTP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.