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.NumberFormatExce ption: null
at java.lang.Integer.parseInt (Integer.j av
at java.lang.Integer.parseInt (Integer.j av
at ClientApplet.init(ClientAp plet.java: 10
at sun.applet.AppletPanel.run (AppletPan el
at java.lang.Thread.run(Threa d.java:534 )
seems to be on this line
int port = Integer.parseInt( getParameter( "80" ) );
i cant figure out whats wrong though
can someone help?
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.NumberFormatExce
at java.lang.Integer.parseInt
at java.lang.Integer.parseInt
at ClientApplet.init(ClientAp
at sun.applet.AppletPanel.run
at java.lang.Thread.run(Threa
seems to be on this line
int port = Integer.parseInt( getParameter( "80" ) );
i cant figure out whats wrong though
can someone help?
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;
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 ) );
}
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 ) );
}
ASKER
i tried both and it gave me the same error again??
ASKER
C:\j2sdk1.4.2_05\bin>apple tviewer a.html
java.lang.NumberFormatExce ption: null
at java.lang.Integer.parseInt (Integer.j av
at java.lang.Integer.parseInt (Integer.j av
at ClientApplet.init(ClientAp plet.java: 10
at sun.applet.AppletPanel.run (AppletPan el
at java.lang.Thread.run(Threa d.java:534 )
the error i get is shown above
java.lang.NumberFormatExce
at java.lang.Integer.parseInt
at java.lang.Integer.parseInt
at ClientApplet.init(ClientAp
at sun.applet.AppletPanel.run
at java.lang.Thread.run(Threa
the error i get is shown above
ASKER
this is what is in a.html
<html>
<body>
<applet code="ClientApplet.class" width=513 height=205>
</applet>
</body>
</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
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>
<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
thats the same as what I mentioned earlier
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.