客户端Java服务器与Javascript之间的套接字通信

Socket Communication between Java server on client and Javascript

本文关键字:套接字 通信 之间 Javascript Java 服务器 客户端      更新时间:2023-09-26

我想在网页上运行的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上的连接,因此未建立连接。那么应该如何做呢?

你有点在土路上,你需要上高速公路。

在特定情况下,javascript可以与java代码通信,浏览器从主机获取网页和javascript,然后javascript连接回同一主机以获取更多数据。

在您的情况下,您希望同一台机器既是客户端又是服务器。但是,如果你实现了两台机器的想法,就更容易理解需要什么:一台运行浏览器的客户端和一台运行java的服务器。

所以,你可以在网上找到很多这样的例子。例如,看看Tomcat中运行的java,它提供了一个网页和javascript,然后javascript在Tomcat服务器上使用不同的URL读取json数据。

如果你想一想网络技术的主流用途,你可以找到展示你想看什么的视频。例如,看看AngularJS演示和RESTful Web Services演示。