[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Questions about TCPSocket

Axel Etzold

11/16/2007 10:52:00 AM

Dear all,

I am trying to use Ruby bindings of a software that does
computations by exchanging messages between competent code.
The details are explained here:

http://www.math.kobe-u.ac.jp/OpenXM/1.2.1/html/OpenXM-en/OpenXM/...

This software can be used from the command line and there, it works as
expected.
Now, I'd like to use it from ruby. There are ruby binding scripts.
However, I encounter some problems when initialising
TCPSocket - I can't get any connection. Both ruby and OpenXM are
installed on the same computer.
What could be the problem ?

Thank you very much,

Best regards,

Axel



require "socket"
<snip>
</snip>
class OXSession
def initialize(host = "localhost",
controlport = rand(20000)+1024,
dataport = controlport+1,
byteorder = 0)
@serial = 0
begin
printf("Connecting to %s, \n", host)
printf("Trying to connect to controlport %d, \n", controlport)
@controlp = TCPSocket.new(host, controlport)
sleep 2
printf("Trying to connect to dataport %d, \n", dataport)
@datap = TCPSocket.new(host, dataport)
sleep 2
rescue
p 'could not connect'
end

# byte oder negotiation
@byteorder = decide_byte_order(byteorder)
end

attr_accessor :controlp, :datap

def decide_byte_order(b_or_l)
if b_or_l == 0
@controlp.read(1)
@datap.read(1)
@controlp.flush
@datap.flush
@controlp.write(0)
@datap.write(0)
return 0
end
end
end
<snip>

--
GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/g...

3 Answers

Robert Klemme

11/16/2007 3:05:00 PM

0

2007/11/16, Axel Etzold <AEtzold@gmx.de>:
> Dear all,
>
> I am trying to use Ruby bindings of a software that does
> computations by exchanging messages between competent code.
> The details are explained here:
>
> http://www.math.kobe-u.ac.jp/OpenXM/1.2.1/html/OpenXM-en/OpenXM/...
>
> This software can be used from the command line and there, it works as
> expected.
> Now, I'd like to use it from ruby. There are ruby binding scripts.
> However, I encounter some problems when initialising
> TCPSocket - I can't get any connection. Both ruby and OpenXM are
> installed on the same computer.
> What could be the problem ?

Posting an exception with stack trace often goes a long way to help
people help you. So I suggest you give that detail.

Generic answer would be: configuration issue, firewall, network issues...

Cheers

robert

--
use.inject do |as, often| as.you_can - without end

Axel Etzold

11/16/2007 4:44:00 PM

0


-------- Original-Nachricht --------
> Datum: Sat, 17 Nov 2007 00:05:11 +0900
> Von: "Robert Klemme" <shortcutter@googlemail.com>
> An: ruby-talk@ruby-lang.org
> Betreff: Re: Questions about TCPSocket

> 2007/11/16, Axel Etzold <AEtzold@gmx.de>:
> > Dear all,
> >
> > I am trying to use Ruby bindings of a software that does
> > computations by exchanging messages between competent code.
> > The details are explained here:
> >
> >
> http://www.math.kobe-u.ac.jp/OpenXM/1.2.1/html/OpenXM-en/OpenXM/...
> >
> > This software can be used from the command line and there, it works as
> > expected.
> > Now, I'd like to use it from ruby. There are ruby binding scripts.
> > However, I encounter some problems when initialising
> > TCPSocket - I can't get any connection. Both ruby and OpenXM are
> > installed on the same computer.
> > What could be the problem ?
>
> Posting an exception with stack trace often goes a long way to help
> people help you. So I suggest you give that detail.
>
> Generic answer would be: configuration issue, firewall, network issues...
>
> Cheers
>
> robert
>
> --
> use.inject do |as, often| as.you_can - without end


Dear Robert,

thanks for your reply.
I now get

dhcppc0:/usr/local/openxm-head/OpenXM/src/ruby # ruby ox.rb
Connecting to localhost,
Trying to connect to controlport 1200,
Exception: Errno::ECONNREFUSED: Connection refused - connect(2)
ox.rb:172:in `initialize'
ox.rb:172:in `new'
ox.rb:172:in `initialize'
ox.rb:315:in `new'
ox.rb:315

I tried to find some help in previous discussions, and was able to
identify some open ports, through which I can communicate.
Is there a way to change what ports are blocked from ruby, as root, on Linux ?

Thank you very much,

Axel
--
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
Browser-Versionen downloaden: http://www.gmx.net/de/...

Robert Klemme

11/17/2007 7:45:00 AM

0

2007/11/16, Axel Etzold <AEtzold@gmx.de>:
>
> -------- Original-Nachricht --------
> > Datum: Sat, 17 Nov 2007 00:05:11 +0900
> > Von: "Robert Klemme" <shortcutter@googlemail.com>
> > An: ruby-talk@ruby-lang.org
> > Betreff: Re: Questions about TCPSocket
>
> > 2007/11/16, Axel Etzold <AEtzold@gmx.de>:
> > > Dear all,
> > >
> > > I am trying to use Ruby bindings of a software that does
> > > computations by exchanging messages between competent code.
> > > The details are explained here:
> > >
> > >
> > http://www.math.kobe-u.ac.jp/OpenXM/1.2.1/html/OpenXM-en/OpenXM/...
> > >
> > > This software can be used from the command line and there, it works as
> > > expected.
> > > Now, I'd like to use it from ruby. There are ruby binding scripts.
> > > However, I encounter some problems when initialising
> > > TCPSocket - I can't get any connection. Both ruby and OpenXM are
> > > installed on the same computer.
> > > What could be the problem ?
> >
> > Posting an exception with stack trace often goes a long way to help
> > people help you. So I suggest you give that detail.
> >
> > Generic answer would be: configuration issue, firewall, network issues...
> >
> > Cheers
> >
> > robert
> >
> > --
> > use.inject do |as, often| as.you_can - without end
>
>
> Dear Robert,
>
> thanks for your reply.
> I now get
>
> dhcppc0:/usr/local/openxm-head/OpenXM/src/ruby # ruby ox.rb
> Connecting to localhost,
> Trying to connect to controlport 1200,
> Exception: Errno::ECONNREFUSED: Connection refused - connect(2)
> ox.rb:172:in `initialize'
> ox.rb:172:in `new'
> ox.rb:172:in `initialize'
> ox.rb:315:in `new'
> ox.rb:315
>
> I tried to find some help in previous discussions, and was able to
> identify some open ports, through which I can communicate.
> Is there a way to change what ports are blocked from ruby, as root, on Linux ?

Either there is nothing listening on that port or the firewall of your
or the target machine blocks the connection. If you are on Linux you
can most likely check with iptables or ip6tables. Chances are that
there is also a GUI tool for that.

Cheers

robert

--
use.inject do |as, often| as.you_can - without end