自己写了个socket通信的applet,在MyEclipse内正常运行,但在html内不能自动更新内容,找了好久也找不到原因,特求助各位达人!!!

解决方案 »

  1.   

    把代码发上来给各位看看有什么不对的地方。客户端代码
    import java.applet.*;
    import java.awt.*;
    import java.io.*;
    import java.net.*;public class AppletClient extends Applet implements Runnable {
    private static final long serialVersionUID = 1L;
    private Socket Server;
    private String info;
    private Thread myThread;
    int i = 1; public void init() { } public void start() { myThread = new Thread(this, "applet");
    myThread.start(); } public void stop() { myThread = null; } public void run() { try {
    Server = new Socket("192.168.1.101", 5678);
    DataInputStream in = new DataInputStream(Server.getInputStream());
    DataOutputStream out = new DataOutputStream(Server
    .getOutputStream());
    while (true) {
    i++;
    out.writeUTF(i + "");
    info = in.readUTF();

    repaint();
    Thread.sleep(1000);
    }
    } catch (Exception e) {
    myThread = null;
    myThread = new Thread(this, "applet");
    myThread.start(); } } public void paint(Graphics g) {
    //update(g);
    g.drawString(info + " " + i, 20, 20);
    }
    /*
    public void update(Graphics g) {
    g.drawString(info + " " + i, 20, 20);
    }*/
    }服务器端代码:import java.applet.Applet;
    import java.awt.Graphics;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;public class AppletServer extends Applet implements Runnable {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private ServerSocket server;
    private Socket client;
    private Thread myThread;
    private String str = "1";
    private String address = "地址为空";
    public void init() {
    if (myThread == null) {
    myThread = new Thread(this, "applet");
    myThread.start(); }

    } public void stop() { myThread = null;
    }
    public void run() {
    try {

    server = new ServerSocket(5678);
    client = server.accept();

    address = client.getLocalSocketAddress()+"";
    DataInputStream in = new DataInputStream(client.getInputStream());
    DataOutputStream out = new DataOutputStream(client
    .getOutputStream());
    // Mutil User but can parallel
    while (true) {
    str = in.readUTF();
    out.writeUTF("has receive....");
    repaint();
    Thread.sleep(1000);

    }

    } catch (Exception e) {
    myThread = null;
    myThread = new Thread(this, "applet");
    myThread.start();
    } } public void paint(Graphics g) {
    g.drawString(str + address, 20, 20);
    }
    /*public  void update(Graphics g) {
    g.drawString(str + address, 20, 20);
    }*/
    }