How do I get the hostname or IP address during a TCPServer"conversation"

V

Victor Reyes

[Note: parts of this message were removed to make it a legal post.]

Hello Team,

I have a client which connects to the simple server listed below.
I would like to be able to get either the hostname or the IP address of the
client.
Is there a way to do this? I am sure that this information is hidden in some
place, as the server needs it to return the call.

Also, in the client code I specified the length of the arriving (recv)
string. Is there a way to receive any size output from the server?

Thank you


This is the server code:

require 'socket'
port = 19557
server = TCPServer.new("", port)

while (session = server.accept)
input = session.gets
userCMD_output = `#{input}`
session.write("#{userCMD_output}")
session.close
end

This is the client code:

def runIt( srvr, comm )
require 'socket'
port = 19557
streamSock = TCPSocket.new( srvr, port )
streamSock.puts("#{comm}\n")
str = streamSock.recv( 64000 )
puts "Output from Server: #{srvr}"
print str
puts "\n"
streamSock.close
end


Victor
 
M

MonkeeSage

[Note: parts of this message were removed to make it a legal post.]

Hello Team,

I have a client which connects to the simple server listed below.
I would like to be able to get either the hostname or the IP address of the
client.
Is there a way to do this? I am sure that this information is hidden in some
place, as the server needs it to return the call.

TCPSocket#peeraddr. E.g.,

....
peer = session.peeraddr.values_at(2 ,3)
p peer # => ["localhost", "127.0.0.1"]
....
Also, in the client code I specified the length of the arriving (recv)
string. Is there a way to receive any size output from the server?

TCPSocket#read. E.g.,

....
str = streamSock.read
....
Thank you

This is the server code:

require 'socket'
port = 19557
server = TCPServer.new("", port)

while (session = server.accept)
input = session.gets
userCMD_output = `#{input}`
session.write("#{userCMD_output}")
session.close
end

This is the client code:

def runIt( srvr, comm )
require 'socket'
port = 19557
streamSock = TCPSocket.new( srvr, port )
streamSock.puts("#{comm}\n")
str = streamSock.recv( 64000 )
puts "Output from Server: #{srvr}"
print str
puts "\n"
streamSock.close
end

Victor

HTH,
Jordan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top