Problem writing object from applet to server in Firefox (Linux)

D

Duncan Jones

Hi,

I'm trying to write an Java applet that will send an object, via a TCP
socket, to a Java application running on the same machine. It works
in Opera and Mozilla, but it doesn't work in Firefox - the Java
application appears to receive an incoming connection, but never
actually reads the object.

Any ideas how to resolve this problem?


Code:

/////////////////////// APPLET ////////////////////////////

import java.applet.Applet;
import java.io.BufferedOutputStream;
import java.io_ObjectOutputStream;
import java.net.Socket;


public class AppletClient extends Applet {

private Socket socket;
private ObjectOutputStream oos;



public void start() {
System.out.println("Hello there!");
try {
String host = getCodeBase().getHost();
socket = new Socket("127.0.0.1", 55000);
oos = new ObjectOutputStream(new
BufferedOutputStream(socket.getOutputStream()));
TestObject t = new TestObject("Hello!");
oos.writeObject(t);
oos.flush();
oos.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}



/////////////////////// APPLICATION ////////////////////////////

import java.io.BufferedInputStream;
import java.io_ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

private static ServerSocket serv;
private static Socket sock;

private Server() {
}

public static void main(String[] args) {

try {
serv = new ServerSocket(55000);

System.out.println("Server listening on port " +
serv.getLocalPort());
sock = serv.accept();
System.out.println("Received connection: " +
sock.getInetAddress()
+ ":" + sock.getPort());
ObjectInputStream ois = new ObjectInputStream(new
BufferedInputStream(sock.getInputStream()));
System.out.println("Opened input stream. Attemping to
read object.");
TestObject t = (TestObject) ois.readObject();
ois.close();

t.print();
}
catch (Exception e) {
e.printStackTrace();
}
}
}


/////////////////////// OBJECT TO SEND ////////////////////////////

import java.io.Serializable;

public class TestObject implements Serializable {
private String s;

public TestObject(String s) {
this.s = s;
}

public void print() {
System.out.println(s);
}
}


Thanks,

Duncan Jones
 
A

Andrew T.

Duncan Jones wrote:
(applet)
...It works
in Opera and Mozilla, but it doesn't work in Firefox - the Java
application appears to receive an incoming connection, but never
actually reads the object.

Any ideas how to resolve this problem?

You might try removing browsers from the loop,
(and will possibly get a more consistent result)
by launching the applet using Web Start.
<http://www.physci.org/jws/#jtest>

HTH

--
Andrew Thompson
http://www.athompson.info/andrew/

Message posted via JavaKB.com
http://www.javakb.com/Uwe/Forums.aspx/java-general/200704/1
 
D

Duncan Jones

Duncan Jones wrote:

(applet)



You might try removing browsers from the loop,
(and will possibly get a more consistent result)
by launching the applet using Web Start.
<http://www.physci.org/jws/#jtest>

HTH

Sadly, this HAS to occur within a browser, as it's part of a larger
automated program that needs to determine when a web page has loaded...
 
D

Duncan Jones

Sadly, this HAS to occur within a browser, as it's part of a larger
automated program that needs to determine when a web page has loaded...

For whatever reason, this problem seems to have fixed itself. Which
naturally worries me a bit, but I'll just cross my fingers and see...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,059
Latest member
cryptoseoagencies

Latest Threads

Top