我想在网页上运行的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上的连接时,连接没有建立。那么应该怎么做呢?
答案 0 :(得分:1)
你走在泥泞的道路上,你需要让自己走上高速公路。
javascript可以在特定情况下与java代码进行通信,其中浏览器从主机获取网页和javascript,然后javascript连接回同一主机以获得更多数据的连接。
在您的情况下,您希望同一台计算机同时是客户端和服务器。但是如果你意识到这两台机器的想法,那就更容易理解需要什么:运行浏览器的客户端和运行java的服务器。
所以,你可以在网上找到很多这方面的例子。例如,看一下在Tomcat中运行的java,提供一个网页和javascript,然后使用Tomcat服务器上的不同URL读取json数据。
如果您想到网络技术的主流使用,您可以找到展示您希望看到的内容的视频。例如,在AngularJS演示和RESTful Web服务演示中查看。