[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

if string = "mike" then print "Hi mike"

Bigmac Turdsplash

5/6/2009 1:43:00 AM

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
--
Posted via http://www.ruby-....

4 Answers

Nobuyoshi Nakada

5/6/2009 2:57:00 AM

0

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.

--
Nobu Nakada

Michael Morin

5/6/2009 3:17:00 AM

0

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.

On Tue, May 5, 2009 at 10:56 PM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrot=
e:
> 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 =3D=3D ???? this if statement is alw=
ays
>> skipped and im not sure why?
>
> #gets method returns a string with a newline if you ended the
> input with enter. =A0You can chomp it or use double Ctrl-D
> instead of enter.
>
> --
> Nobu Nakada
>
>

Bigmac Turdsplash

5/6/2009 3:59:00 AM

0

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

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

Heesob Park

5/6/2009 1:29:00 PM

0

Hi,

2009/5/6 Bigmac Turdsplash <i8igmac@aim.com>:
> 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 =3D=3D ???? this if statement is al=
ways
>>> skipped and im not sure why?
>>
>> #gets method returns a string with a newline if you ended the
>> input with enter. =C2=A0You 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 =3D=3D "mike"
> =C2=A0 print "hello mike\n"
> =C2=A0 system("calc.exe")
>
> # how can i execute calc.exe and continue with the script well calc is
> still running????
>
Try
system("start calc.exe")

Regards,
Park Heesob