Forum: Ruby Specifying ports when creating sockets?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Alex M. (Guest)
on 2009-06-05 13:33
In TCP, when you create a socket to a particular address, the OS chooses
a free port number.

I'd like to either specify that port number, or find out that port
number.

I can easily find the port number like so:
socket.addr[1]

However, that fails when the IO stream is closed. I need to find out the
port number even if the connection  is never made. I'm not sure this is
possible, which is why I think the first approach, specifying the port
number, is the way to go.

If you're wondering why I'm doing this, it's to do with STUNT.

Can anybody provide any pointers?
Alex M. (Guest)
on 2009-06-05 13:50
Alex M. wrote:
>
> In TCP, when you create a socket to a particular address, the OS chooses
> a free port number.
>
> I'd like to either specify that port number, or find out that port
> number.
>
> I can easily find the port number like so:
> socket.addr[1]
>
> However, that fails when the IO stream is closed. I need to find out the
> port number even if the connection  is never made. I'm not sure this is
> possible, which is why I think the first approach, specifying the port
> number, is the way to go.
>
> If you're wondering why I'm doing this, it's to do with STUNT.
>
> Can anybody provide any pointers?

Ok, somebody has kindly let me know that TCPSocket takes 4 options,
including a local port - oops!

That should solve the issue.
This topic is locked and can not be replied to.