Forum: Ruby if string = "mike" then print "Hi mike"

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.
Bigmac T. (Guest)
on 2009-05-06 05:43
server/client connection
so, im only a few days into ruby, im working on some tcp and there is a
problem with my client.rb... if str == ???? this if statement is always
skipped and im not sure why?

also, from the server with the gets command i want to send the client a
string like "mike skateboard boxing" then when the client recives this
string how can i brake this into 3 arrays or strings?

#server.rb
require "socket"
dts = TCPServer.new('localhost', 1234)
loop do
  Thread.start(dts.accept) do |s|
    print(s, " is accepted\n")
    #gets, what command to send to the client?
  str = gets
    s.write(str)
    print(s, " is gone\n")
    s.close
  end
end
------------end of server-------------

#client.rb
require 'socket'
while true
streamSock = TCPSocket.new( "127.0.0.1", 1234 )
  str = streamSock.recv( 100 )
    print str


  if str == 'mike'
    print 'Hi mike'
  elsif str == 'user'
      print 'hi user'
  end
  end

--------end of client
Nobuyoshi N. (Guest)
on 2009-05-06 06:57
(Received via mailing list)
Hi,

At Wed, 6 May 2009 10:43:23 +0900,
Bigmac T. wrote in [ruby-talk:335871]:
> so, im only a few days into ruby, im working on some tcp and there is a
> problem with my client.rb... if str == ???? this if statement is always
> skipped and im not sure why?

#gets method returns a string with a newline if you ended the
input with enter.  You can chomp it or use double Ctrl-D
instead of enter.
Michael M. (Guest)
on 2009-05-06 07:17
(Received via mailing list)
I've gotten into the habit of using gets.chomp when reading input of
any kind.  It's so easy to forget that newlines are still on there.
Bigmac T. (Guest)
on 2009-05-06 07:58
Nobuyoshi N. wrote:
> Hi,
>
> At Wed, 6 May 2009 10:43:23 +0900,
> Bigmac T. wrote in [ruby-talk:335871]:
>> so, im only a few days into ruby, im working on some tcp and there is a
>> problem with my client.rb... if str == ???? this if statement is always
>> skipped and im not sure why?
>
> #gets method returns a string with a newline if you ended the
> input with enter.  You can chomp it or use double Ctrl-D
> instead of enter.

Oh, wow... a bit confused at first but then i googled ruby chomp and
then it made sence, when you press enter \n

if string.chomp == "mike"
   print "hello mike\n"
   system("calc.exe")

# how can i execute calc.exe and continue with the script well calc is
still running????
Heesob P. (Guest)
on 2009-05-06 17:29
(Received via mailing list)
Hi,

2009/5/6 Bigmac T. <removed_email_address@domain.invalid>:
>> input with enter.  You can chomp it or use double Ctrl-D
> still running????
>
Try
system("start calc.exe")

Regards,
Park H.
This topic is locked and can not be replied to.