Link to home
Start Free TrialLog in
Avatar of desiboy1974
desiboy1974

asked on

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?
      
Avatar of Mick Barry
Mick Barry
Flag of Australia image

you don't have a parameter named '80' defined in your html
if you just want to hardcode it then it should be:

    String host = "localhost";
    int port = 80;
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 ) );
  }
Avatar of desiboy1974
desiboy1974

ASKER

i tried both and it gave me the same error again??
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
this is what is in a.html

<html>
<body>
<applet code="ClientApplet.class" width=513 height=205>
</applet>
</body>
</html>
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
<applet code="ClientApplet.class" width=513 height=205>
<param name="80" value="80"/>
<param name="localhost" value="localhost"/>
</applet>
> u didn't got what i mean, anyway, ok just try this:

thats the same as what I mentioned earlier
ASKER CERTIFIED SOLUTION
Avatar of petmagdy
petmagdy
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial