我将我的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应用程序。当用户从他的浏览器访问此应用程序并单击触发按钮时。我将触发桌面应用程序,云应用程序将获得响应。
答案 0 :(得分:0)
我认为从互联网网络应用程序连接到原始套接字是不可能的,但是这个博客非常有帮助。
http://artemyankov.com/tcp-client-for-browsers/ https://github.com/yankov/webtcp
通过使用网桥,我现在可以连接到原始套接字。