![](/img/trans.png)
[英]Network Communication between a java socket (server) and a C++ socket (client)
[英]Socket Communication between Java server on client and Javascript
我想在網頁上運行的javascript和客戶端計算機上運行的java SocketServer之間建立套接字通信,以便在兩者之間建立連接后立即在客戶端計算機上打開excel工作表。 我知道這會導致安全問題,但是由於通信將在localhost上進行,所以我對此表示滿意。
這是我在客戶端上運行的Java服務器:
import java.io.*;
import java.net.*;
public class ServerExcelOpenOnJavaScriptConnect {
public static void main(String args[]) throws Exception {
ServerSocket welcomeSocket = new ServerSocket(12345);
Socket connectionSocket = welcomeSocket.accept();
Process p =
Runtime.getRuntime()
.exec("C:\\Program Files (x86)\\Microsoft Office\\Office14\\excel.exe c:\\users\\rahulserver\\desktop\\abcd.xlsx");
System.out.println("Waiting for excel file ...");
p.waitFor();
System.out.println("Excel file done.");
//Runtime.getRuntime().exec();
}
}
這是我的Javascript HTML:
<html>
<head>
<title>TCP Socket test</title>
<script type="text/javascript">
function connect(){
var host = 'localhost';
var port = 12345;
var socket = new io.Socket('localhost',{'port':12345});
socket.connect();
alert("connected");
}
</script>
</head>
<body>
<button onclick="connect()">Connect</button>
</body>
</html>
由於服務器一直在等待端口12345上的連接,因此未建立連接。那么該怎么辦呢?
您有點在土路上,需要讓自己走上高速公路。
在特定情況下,當瀏覽器從主機獲取網頁和javascript時,javascript可以與Java代碼進行通信,然后javascript連接回到同一主機以獲取更多數據的連接。
對於您的情況,您希望同一台計算機既是客戶端又是服務器。 但是,如果您同時意識到兩台計算機的概念,則更容易理解所需的內容:運行瀏覽器的客戶端和運行Java的服務器。
因此,您可以在網上找到許多示例。 例如,看一下在Tomcat中運行的Java,提供一個網頁和javascript,然后該javascript使用Tomcat服務器上的另一個URL讀取json數據。
如果您想到網絡技術的主流用途,則可以找到演示您想要看到的內容的視頻。 環顧四周,例如AngularJS演示和RESTful Web Services演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.