Ok, I have experiment a lot and found that :
When the Java Server use :
in = requestSocket.getInputStream();
It works… I can read what the Ruby socket is sending…
But the real Java server that I have to talk with use :
in = new ObjectInputStream( new BufferedInputStream(
requestSocket.getInputStream() ) );
And in this case I get :
java.io.StreamCorruptedException: invalid stream header
at
java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:753)
at java.io.ObjectInputStream.(ObjectInputStream.java:268)
at project1.SergeServer1.main(SergeServer1.java:44)
The client can’t change the server so…
Is there a mean to force a header in a way that the ObjectInputStream
will be able to read what I send from Ruby ?
Here’s my test Ruby code :
addrinfo = Socket::getaddrinfo('localhost', 9501, nil,
Socket::SOCK_STREAM)
addrinfo.each do |af, port, name, addr|
begin
sock = TCPSocket.new(addr, port)
sock.send(“test”, 0)
rescue
end
end
Thx in advance !
Seurdge
Serge S. wrote:
Hello !
I have some problem trying to establish dialog between a Ruby
socket(client) and a Java server socket (java.net.ServerSocket).
Everytime I try to write on the server socket I get an “Invalid stream
header” error from the server…
s = TCPSocket.open(“host”, 9061)
s.write(“test \n”);
=> Error
Can someone give a little hint on how to start inthe right way on this ?
Thx a lot !
Seurdge