![](/img/trans.png)
[英]How can I send simple messages from a webpage (HTML/Javascript) to a Java application?
[英]How to send simple data from javascript to java application
我正在嘗試從javascript發送一條簡單消息。 我想在Java程序(服務器)中接收數據,但似乎無法弄清楚如何在Java中獲取消息。
這是我的JavaScript:
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST", ip, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("posX=" + posX + "&posX = " + posX);
我對此有2個問題。
我真的希望有人能幫助我。 任何幫助將不勝感激
因為我從未做過這樣的事情,所以我不知道是否有任何最快的方法,但是這種方式Java應用程序必須偵聽TCP端口80。 它還應該發送HTTP響應。
編輯:深入研究問題后,我想出了兩件事:
BufferedReader
及其readLine
方法,它將僅掛在那里並等待。 它不會被終止,因為#2 AJAX請求顯然不會關閉套接字,因此Java程序從中讀取的流不會終止,因此您無法通過等待InputStreamReader
read
方法返回-1來結束讀取。 我很快發現的唯一方法是檢查輸入流是否准備就緒。 因此,一個非常粗略的例子是:
import java.io.*; import java.net.*; class TCPServer { public static void main(String argv[]) throws Exception { ServerSocket welcomeSocket = new ServerSocket(80); while(true) { Socket connectionSocket = welcomeSocket.accept(); InputStreamReader inFromClient = new InputStreamReader(connectionSocket.getInputStream()); int c = 0; while(true) { c = inFromClient.read(); System.out.print((char)c); if(!inFromClient.ready()) { break; } } System.out.println("-------------------------"); } } }
我認為HttpServer是您想要的。 它在端口80上偵聽以接受Http-Requests
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.