Grundsätzlich .. Ich kann meine Daten vom LAN-Port lesen, wenn ich von Befehl Promp ausgeführt werde.Wie kann ich Daten vom LAN-Port lesen und auf Applet anzeigen?
javac XYZ.java
appletviewer XYZ.html
Dies ist Arbeit an meinem Computer. Ich kann Daten lesen und auf meinem Applet anzeigen.
Aber wenn ich mein Applet auf ASPX-Seite hochladen und ausführen. Es ist Last und läuft. Es werden jedoch keine Anzeigedaten vom Port gelesen.
Dies ist mein Code:
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.*;
import java.util.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.io.*;
import java.net.*;
public class FCApplet extends JApplet implements ActionListener , Runnable
{
Thread th = new Thread(this);
TextField txtID,txtName,txtResult;
Label lblID,lblName,lblResult;
String MemberID;
Panel p2;
public void init()
{
setBackground(Color.decode("#BFBFBF"));
lblID = new Label(" ID ");
lblID.setFont(new Font("Verdana", Font.BOLD , 12));
txtID= new TextField();
lblName= new Label(" Name ");
lblName.setFont(new Font("Verdana", Font.BOLD , 12));
txtName= new TextField();
lblResult= new Label(" Result ");
lblResult.setFont(new Font("Verdana", Font.BOLD , 12));
txtResult= new TextField();
Button b = new Button("Connect");
b.setFont(new Font("Verdana", Font.BOLD , 12));
b.addActionListener(this);
p2=new Panel();
p2.setLayout(new GridLayout(1,10,5,5));
p2.setPreferredSize(new Dimension(900, 20));
p2.add(lblID);
p2.add(txtID);
p2.add(lblName);
p2.add(txtName);
p2.add(lblResult);
p2.add(txtResult);
p2.add(b);
GridBagLayout gbl = new GridBagLayout();
setLayout(gbl);
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.WEST;
c.fill=GridBagConstraints.HORIZONTAL;
c.insets = new Insets(10,10,10,10);
c.fill=GridBagConstraints.HORIZONTAL;
c.gridy=1;
gbl.setConstraints(p2,c);
add(p2);
}
public void StartTest()
{
DatagramSocket sock = null;
try
{
//1. creating a server socket, parameter is local port number
sock = new DatagramSocket(8001);
//buffer to receive incoming data
byte[] buffer = new byte[65536];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
//2. Wait for an incoming data
System.out.println("Server socket created. Waiting for incoming data...");
//communication loop
while(true)
{
sock.receive(incoming);
byte[] data = incoming.getData();
String s = new String(data, 0, incoming.getLength());
//echo the details of incoming data - client ip : client port - client message
System.out.println(incoming.getAddress().getHostAddress() + " : " + incoming.getPort() + " : " + s);
if(s != "")
{
String R = incoming.getAddress().getHostAddress() + " : " + incoming.getPort() + " : " + s;
//lblResultTest.setText(R);
String[] words = s.split("&");
txtResult.setText(words[2]);
this.getAppletContext().showDocument(this.getDocumentBase());
}
//s = "OK : " + s;
//DatagramPacket dp = new DatagramPacket(s.getBytes() , s.getBytes().length , incoming.getAddress() , incoming.getPort());
//sock.send(dp);
}
}
catch(IOException e)
{
System.err.println("IOException " + e);
}
}
public void run()
{
try
{
Thread.sleep(1000);
}
catch(InterruptedException ex)
{
Thread.currentThread().interrupt();
}
}
public void actionPerformed(ActionEvent e)
{
Button source = (Button)e.getSource();
if(source.getLabel() == "Connect")
{
StartTest();
}
else{
JOptionPane.showMessageDialog(null,"Please Provide Input","alert",JOptionPane.WARNING_MESSAGE);
}
}
}
Below Bilder ist meine Ausgabe von Eingabeaufforderung
Unter Web-Browser ausgegeben werden.
[enter image description here] [3]
Welche Berechtigungen sind Sie in den manifesten gesetzt haben? Sie müssen wahrscheinlich wie "all", um dies zu tun, abhängig von Java-Version –
Vielen Dank für die Antwort .. können Sie mir sagen, wie ich die Erlaubnis geben, und ich werde googlen zu tun. Und ich habe keine Manifest-Datei. Ich habe .java, .class nd jar Datei erstellt. Dann laden Sie mein Applet auf die apsx-Seite. Nd mein Code im Browser funktioniert einwandfrei bis zur (wahren) Zeile aber nach Socket. receive line .. ich versuche, msg per s.p. zu drucken ("hallo"); es sieht nicht so ist ihr irgendein Fehler in meinem Code? Oder muss ich etwas anders machen? @ Stefan Hegny – PTank