TCP Socket Programming

Hi

I am trying to establish communication between 2 applications.
On executing the below piece of code on client side application, I get
this error

socket_client.rb:3:in `initialize': Bad file descriptor - connect(2)
(Errno::EBADF) from socket_client.rb:3:in `new'

···

#########
code:
#########

require 'socket'

client_side = TCPSocket.new('localhost',1045)
puts "Enter some text: "
text=gets()

Server side code works fine and is implemented as displayed below.
require 'socket'

###########
code:
###########

server_side=TCPServer.new('localhost','1025')
port = server_side.accept
data = port.recvfrom(256)[0]
puts data

Any suggestions on what could be the possible problem?
PLease Help

Macman
--
Posted via http://www.ruby-forum.com/.

Mac Man wrote:

client_side = TCPSocket.new('localhost',1045)
server_side=TCPServer.new('localhost','1025')

Different ports :slight_smile: And I'm not sure the string '1025' will be interpreted as a numeric port--maybe so.

Also, it seems like you are not doing anything with the client_side variable after you assign to it.

···

--
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

sorry...that was a mistake..typo error.
both client and server are pointing to the same port 1045.

Actually the code goes this way...

client_side = TCPSocket.new('localhost','1045')
print "Enter some text: "
text=gets()
client_side.write(text)

I am writing the input text to the server side.

An issue I found was that this error occurs only in version 1.8.6.
I tried the same code on version 1.8.1 and it worked, but got a
different error as below.

in 'recvfrom' : getnameinfo: ai_family not supported. (SocketError)

···

--
Posted via http://www.ruby-forum.com/.