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.
D974b374bd09edcef9285ff7c4f59ea5?d=identicon&s=25 Bigmac Turdsplash (i8igmac)
on 2009-05-06 03: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
F1d6cc2b735bfd82c8773172da2aeab9?d=identicon&s=25 Nobuyoshi Nakada (nobu)
on 2009-05-06 04:57
(Received via mailing list)
Hi,

At Wed, 6 May 2009 10:43:23 +0900,
Bigmac Turdsplash 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.
5316d692cc603c3ad2df0f03869bb96b?d=identicon&s=25 Michael Morin (Guest)
on 2009-05-06 05: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.
D974b374bd09edcef9285ff7c4f59ea5?d=identicon&s=25 Bigmac Turdsplash (i8igmac)
on 2009-05-06 05:58
Nobuyoshi Nakada wrote:
> Hi,
>
> At Wed, 6 May 2009 10:43:23 +0900,
> Bigmac Turdsplash 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????
666b4e17b4bb0e2d999037a25f65a7cb?d=identicon&s=25 Heesob Park (phasis)
on 2009-05-06 15:29
(Received via mailing list)
Hi,

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

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