如何从Web应用程序触发客户端的localhost套接字

时间:2016-12-08 17:39:48

标签: java sockets

我将我的Web应用程序部署在云端。当用户从他的系统访问应用程序时,单击触发按钮。我想触发本地主机套接字。这可以通过java。

public String trigger() {

  String ipServer = "localhost";
  int port = 5555;
  String resp="";
  try {
    Socket socekt = new Socket(ipServer, port);
    DataOutputStream dataOut = new DataOutputStream(socekt.getOutputStream());
    dataOut.writeUTF("[TRIGGER]");
    BufferedReader resReader = new BufferedReader(new InputStreamReader(socekt.getInputStream(), "UTF-8"));
    String str;
    while ((str = resReader.readLine()) != null) {
        if(str.contains("RECIV")){
            resp = str;
        }
    }
    dataOut.close();
  } catch (Exception e) {
    log.error(e);
  }
  return resp;

}

当作为桌面应用程序运行时,此代码工作正常,但当我将代码部署在云中作为Web应用程序时,我无法工作,因为它无法连接到客户端localhost。任何人都可以建议我如何在java中做到这一点吗?

背景: 我有一个桌面应用程序,它在用户localhost中运行并侦听端口5555.我正在构建一个部署在云中的Web应用程序。当用户从他的浏览器访问此应用程序并单击触发按钮时。我将触发桌面应用程序,云应用程序将获得响应。

1 个答案:

答案 0 :(得分:0)

我认为从互联网网络应用程序连接到原始套接字是不可能的,但是这个博客非常有帮助。

http://artemyankov.com/tcp-client-for-browsers/ https://github.com/yankov/webtcp

通过使用网桥,我现在可以连接到原始套接字。

enter image description here