• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 287
  • Last Modified:

java applet problem

import java.applet.*;
import java.awt.*;
import java.io.*;
import java.net.*;

public class ClientApplet extends Applet
{
  public void init() {
    String host = getParameter( "localhost" );
    int port = Integer.parseInt( getParameter( "80" ) );
    setLayout( new BorderLayout() );
    add( "Center", new Client( host, port ) );
  }
 
  static public void main( String args[] ) throws Exception {

    new ClientApplet();
  }
}




import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

public class Client extends Panel implements Runnable
{
  // Components for the visual display of the chat windows
  private TextField tf = new TextField();
  private TextArea ta = new TextArea();

  // The socket connecting us to the server
  private Socket socket;

  // The streams we communicate to the server; these come
  // from the socket
  private DataOutputStream dout;
  private DataInputStream din;

  // Constructor
  public Client( String host, int port ) {

    // Set up the screen
    setLayout( new BorderLayout() );
    add( "North", tf );
    add( "Center", ta );

    // We want to receive messages when someone types a line
    // and hits return, using an anonymous class as
    // a callback
    tf.addActionListener( new ActionListener() {
      public void actionPerformed( ActionEvent e ) {
        processMessage( e.getActionCommand() );
      }
    } );

    // Connect to the server
    try {

      // Initiate the connection
      socket = new Socket( host, port );

      // We got a connection!  Tell the world
      System.out.println( "connected to "+socket );

      // Let's grab the streams and create DataInput/Output streams
      // from them
      din = new DataInputStream( socket.getInputStream() );
      dout = new DataOutputStream( socket.getOutputStream() );

      // Start a background thread for receiving messages
      new Thread( this ).start();
    } catch( IOException ie ) { System.out.println( ie ); }
  }

  // Gets called when the user types something
  private void processMessage( String message ) {
    try {

      // Send it to the server
      dout.writeUTF( message );

      // Clear out text input field
      tf.setText( "" );
    } catch( IOException ie ) { System.out.println( ie ); }
  }

  // Background thread runs this: show messages from other window
  public void run() {
    try {

      // Receive messages one-by-one, forever
      while (true) {

        // Get the next message
        String message = din.readUTF();

        // Print it to our text window
        ta.append( message+"\n" );
      }
    } catch( IOException ie ) { System.out.println( ie ); }
  }
}
      
 
Hi
   I'm trying to create a client for a chat server...both the files shown above which are clientapplet.java and client.java compile fine..i'm trying to run the clientapplet.java using appletviewer and it gives me the following error

java.lang.NumberFormatException: null
        at java.lang.Integer.parseInt(Integer.jav
        at java.lang.Integer.parseInt(Integer.jav
        at ClientApplet.init(ClientApplet.java:10
        at sun.applet.AppletPanel.run(AppletPanel
        at java.lang.Thread.run(Thread.java:534)

seems to be on this line

int port = Integer.parseInt( getParameter( "80" ) );

i cant figure out whats wrong though

can someone help?
      
0
desiboy1974
Asked:
desiboy1974
  • 5
  • 3
  • 3
2 Solutions
 
objectsCommented:
you don't have a parameter named '80' defined in your html
0
 
objectsCommented:
if you just want to hardcode it then it should be:

    String host = "localhost";
    int port = 80;
0
 
petmagdyCommented:
obvoiusly getParameter( "80" )  returns null

try this:

  public void init() {
    String host = getParameter( "localhost" );
    try{
    String strPort = getParameter( "80" ) ;
    System.out.println("Pot: " + strPort);
    int port = Integer.parseInt(strPort );
    }
    catch(Exception ex)
    {
       ex.printStackTrace();
    }
    setLayout( new BorderLayout() );
    add( "Center", new Client( host, port ) );
  }
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
desiboy1974Author Commented:
i tried both and it gave me the same error again??
0
 
desiboy1974Author Commented:
C:\j2sdk1.4.2_05\bin>appletviewer a.html
java.lang.NumberFormatException: null
        at java.lang.Integer.parseInt(Integer.jav
        at java.lang.Integer.parseInt(Integer.jav
        at ClientApplet.init(ClientApplet.java:10
        at sun.applet.AppletPanel.run(AppletPanel
        at java.lang.Thread.run(Thread.java:534)

the error i get is shown above
0
 
desiboy1974Author Commented:
this is what is in a.html

<html>
<body>
<applet code="ClientApplet.class" width=513 height=205>
</applet>
</body>
</html>
0
 
petmagdyCommented:
u didn't got what i mean, anyway, ok just try this:

  public void init() {
     setLayout( new BorderLayout() );
    add( "Center", new Client( "localhost", 80 ) );
  }

or pass the paramters from html files using <applet> tag
0
 
objectsCommented:
<applet code="ClientApplet.class" width=513 height=205>
<param name="80" value="80"/>
<param name="localhost" value="localhost"/>
</applet>
0
 
objectsCommented:
> u didn't got what i mean, anyway, ok just try this:

thats the same as what I mentioned earlier
0
 
petmagdyCommented:
if u want to use the html parameters try this:

1- in html:
<html>
<body>
<applet code="ClientApplet.class" width=513 height=205>
<PARAM NAME="host" VALUE="localhost">
<PARAM NAME="port" VALUE="80">

</applet>
</body>
</html>

2- in ur applet class:

  public void init() {
    String host = getParameter( "host" );
     String strPort = getParameter( "port" ) ;
    try{
        System.out.println("Pot: " + strPort);
    int port = Integer.parseInt(strPort );
    }
    catch(Exception ex)
    {
       ex.printStackTrace();
    }
    setLayout( new BorderLayout() );
    add( "Center", new Client( host, port ) );
  }


0
 
objectsCommented:
try this:

public class ClientApplet extends Applet
{
  public void init() {
    String host = getParameter( "host" );
    if (host==null) host = "localhost";
    int port = 80;
    try {
      port = Integer.parseInt( getParameter( "port" ) );
    } catch (Exception ex) {}
    setLayout( new BorderLayout() );
    add( "Center", new Client( host, port ) );
  }
}

with the following html:

<applet code="ClientApplet.class" width=513 height=205>
<param name="port" value="80"/>
<param name="host" value="localhost"/>
</applet>

0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

  • 5
  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now