Web ページで実行されている JavaScript とクライアント マシンで実行されている Java SocketServer との間でソケット通信を確立して、両者の間で接続が確立されるとすぐにクライアント マシンで Excel シートが開かれるようにしたいと考えています。セキュリティ上の問題が発生することはわかっていますが、通信はローカルホストで行われるため、問題ありません。
クライアントで実行されている私の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 で接続を待機し続けるため、接続が確立されません。