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:innew’

#########
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

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.

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)