2017-06-09 2 views
1

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

enter image description here

enter image description here

Unter Web-Browser ausgegeben werden.

[enter image description here] [3]

+0

Welche Berechtigungen sind Sie in den manifesten gesetzt haben? Sie müssen wahrscheinlich wie "all", um dies zu tun, abhängig von Java-Version –

+0

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

Antwort

Verwandte Themen