最近想做一个应用,需要用到本地的tcp服务,因此就想通过applet来实现。骤然发现,虽然用java开发web这么多年,用applet估计还是在上学期间。记录下一个简单的开发例子:
-
写一个applet类
import java.applet.Applet; import java.awt.Button; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.DataOutputStream; import java.net.Socket; public class TestApplet extends Applet { private static final long serialVersionUID = 1L; public void init() { Button send = new Button("send"); this.add(send); send.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { Socket clientSocket = new Socket("127.0.0.1", 9998); DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream()); outToServer.writeBytes("hello tcp" + '\n'); clientSocket.close(); } catch (Exception ex) { } } }); } } -
将所有的class文件打到jar包里:
jar -cvf TestApplet.jar \*\.class -
将applet放到html代码中:
<?xml version = "1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <title>JavaSocketBridge Example</title> </head> <body><applet id="TestApplet" archive="TestApplet.jar" code="TestApplet.class" codebase="." width="100" height="100"></applet></body> </html>
这时候如果你将jar包和上面的html代码一起运行时,会报applet被本地安全设置阻止,因此需要对你的jar包进行签名,如下:
keytool -genkey -keystore test.store -alias test
这个命令用来生成密钥库。
keytool -export -keystore test.store -alias test -file test.cert
生成证书。
jarsigner -keystore test.store TestApplet.jar test
签名完成。
然后再运行页面就可以打开了。
本文介绍如何使用 Java Applet 进行本地 TCP 通信。通过创建一个简单的 Applet 类并将其嵌入 HTML 中,实现了与本地服务器的数据交换。文章还详细介绍了对 jar 包进行签名的过程。

4032

被折叠的 条评论
为什么被折叠?



