Boa tarde pessoal.
Estou com umas duvidas aqui a respeito de applets. Nunca fiz nada com applet, então, estou estudando ainda, mas, só para saber se é possivel o que quero fazer, resolvi perguntar primeiro.
Tenho uma pagina web, que vai se comunicar com uma aplicação local, escrita em delphi, na maquina do cliente. O comando que aciona esta aplicação local, será enviado de uma pagina web.
Imaginei que o jeito mais facil de fazer isso seria com um applet, este applet enviaria um comando via socket para este outro programa, que estaria rodando sempre na maquina como serviço. Porem, não sei se applets permitem acessar uma porta/socket no cliente. É possivel?
Muito obrigado.
Applet acessando porta do cliente
6 Respostas
Não é mais fácil você fazer a aplicação Delphi consultar a aplicação Web?
O problema é que quem dispara o comando que a aplicação Delphi deve fazer vem do browser, ou seja, o cara clica em um botão no site, meu servidor recebe o comando e repassa o que a aplicação delphi deve fazer. Se o delphi simplismente consultar a aplicação web, não vou conseguir saber para quem enviar resposta, pq a sessão do usuario e a da aplicação são diferentes, amarrar ambos pelo ip tb não da, pode haver mais de um pc atras de um unico ip externo. Acho que a melhor solução é o applet.
Obrigado.
Implentei o projeto mas estou com esse erro, alguem tem alguma dica?
Exception in thread "AWT-EventQueue-2" java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:50455 connect,resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at TalkServerApplet.rendezvous(TalkServerApplet.java:247)
at TalkServerApplet.actionPerformed(TalkServerApplet.java:171)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
snoop o erro demonstra que a sua applet não possui permissão. Em alguns casos você precisa “assinar” a applet por questões de segurança.
Acredito que isso seja o seu caso. Segue alguns links que podem te ajudar, quase todos retirados aqui do GUJ mesmo…
-> http://www.guj.com.br/posts/list/38124.java
-> http://www.guj.com.br/posts/list/212543.java
-> http://www.guj.com.br/posts/list/66754.java
-> http://www.guj.com.br/posts/list/50433.java
-> http://www.inf.ufrgs.br/gppd/disc/cmp167/trabalhos/sem2001-1/T2/herrmann/
Abraço
snoop o erro demonstra que a sua applet não possui permissão. Em alguns casos você precisa “assinar” a applet por questões de segurança.Acredito que isso seja o seu caso. Segue alguns links que podem te ajudar, quase todos retirados aqui do GUJ mesmo…
-> http://www.guj.com.br/posts/list/38124.java
-> http://www.guj.com.br/posts/list/212543.java
-> http://www.guj.com.br/posts/list/66754.java
-> http://www.guj.com.br/posts/list/50433.java
-> http://www.inf.ufrgs.br/gppd/disc/cmp167/trabalhos/sem2001-1/T2/herrmann/Abraço
Então cara ele já está assinada, mas, continua esse erro. Será que é impossivel esse tipo de função em um applet?
Muito obrigado.
Abraço.
Ae pessoal, assinei o applet certinho, ele pede a confirmação, saber se o certificado é confiavel, mas, msm assim não funciona. Estou tentando fazer ele abrir a calculadora, só para testar o acesso a maquina do cliente, mas, tb não consigo nada.
Alguem já fez alguma coisa assim com applet?
Obrigado!!!