• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Communication beween Unix and Windows

 
Ranch Hand
Posts: 529
C++ Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi All,
I actually posted this a few days ago in the Sockets forum, but it seems there are not many folks visiting that forum. Hopefully someone here has seen this problem before. Thanks!

I have an interesting problem (at least to me). I am experimenting with ObjectInputStream, ObjectOutputStream and sockets. I have written 2 very simple programs; a server and a client. I am constructing a JFrame on the server and when I hit enter, it will send the JFrame to the client. The Client then creates a new JFrame with the state of the one that was sent. This works great if I am communicating from Windows to Windows, but if I have the server on Unix and the Client on Windows, I get 2 errors. On the Server I get: "java.io.IOException: There is no process to read data written to a pipe.
at java.net.SocketOutputStream.socketWrite(Native Method)
at java.net.SocketOutputStream.write(SocketOutputStream.java:95)
at java.io.ObjectOutputStream.drain(ObjectOutputStream.java:1240)
at java.io.ObjectOutputStream.setBlockData(ObjectOutputStream.java:1264)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:385)
at ReplicateServer.<init>(ReplicateServer.java:37)
at ReplicateServer.main(ReplicateServer.java:50)"
On the client I get:
"java.io.InvalidClassException: javax.swing.JFrame; Local class not compatible: stream c
lassdesc serialVersionUID=-7491023444496277500 local class serialVersionUID=91968438219
42654843
at java.io.ObjectStreamClass.validateLocalClass(ObjectStreamClass.java:523)
at java.io.ObjectStreamClass.setClass(ObjectStreamClass.java:567)
at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:936)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:366)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at ReplicateClient.<init>(ReplicateClient.java:20)
at ReplicateClient.main(ReplicateClient.java:46)"
what's interesting is that on the client, you can see that I am getting the JFrame in the stack trace. So it seems that I am at least getting that information from the stream. Is it possible that some, but not all of the JFrame information is getting sent through the stream? Is this a Java/Unix problem? Any ideas on this are greatly appreciated! Thanks!
Barry
Here is the client code:

And here is the server code:

One further note: I thought maybe there is a problem because I was not flushing/closing the stream on the server side. I added the new code, but it did not make any difference.
[ January 21, 2002: Message edited by: Barry Andrews ]
 
author
Posts: 621
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
This may be related to the fact that most unix environments do not have a graphics peer (i.e. not GUI based). Unless you unix environment has access to similar (i.e. XWindows) then you cannot instantiate most peer-based java objects.
Sean
 
Barry Andrews
Ranch Hand
Posts: 529
C++ Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hmmmmm..... The Unix machine is AIX 4.0. It does have GUI. I don't think this would be the problem. Also, I am not trying to show the JFrame on the server side. I am just creating it, sending it over the wire and showing it on the client. Would this make a difference? Other ideas??? Thanks for the input!

Barry
[ January 25, 2002: Message edited by: Barry Andrews ]
 
Sean MacLean
author
Posts: 621
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You can't even create them without a graphics peer. This is a big hurdle when you do applications on a unix platform but want to manipulate or render graphics for a web client for instance. Check this out.
http://www.jguru.com/faq/view.jsp?EID=121936
Sean
 
Barry Andrews
Ranch Hand
Posts: 529
C++ Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Oh, I see. Thanks for the article!

Barry
reply
    Bookmark Topic Watch Topic
  • New Topic