[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

eventmachine client server problem

Bala Murugan

9/18/2008 1:17:00 PM

Hi All

My Server code is
$stderr.sync = $stdout.sync = true
require 'rubygems'
require 'eventmachine'

module EchoServer
def receive_data data
puts "Server received: #{data}"
send_data ">>>you sent: #{data}"
puts "Server sent: >>>you sent: #{data}"
(puts "CLOSING"; send_data "quit"; close_connection(true);
EM.stop) if data =~ /quit/i
end
end

EM::run{
EM::start_server "127.0.0.1", 8100, EchoServer
}


Client code is

$stderr.sync = $stdout.sync = true
require 'rubygems'
require 'eventmachine'

class EchoClient < EM::Connection
def receive_data data
puts data
puts "Client Received: #{data}"
(puts "CLOSING"; close_connection(false); EM.stop) if data =~
/quit/i
end
end
cnt=0
EM::run {
emc = EM::connect "127.0.0.1", 8100, EchoClient
EM.add_periodic_timer(5) do
cnt +=1;
if cnt < 3
emc.send_data "Message: #{cnt}"
else
emc.send_data "quit"
end
end
}
#### End client code ####





Server Output is

C:\sandbox\ruby_files>ruby serv2.rb
Server received: Message: 1
Server sent: >>>you sent: Message: 1
Server received: Message: 2
Server sent: >>>you sent: Message: 2
Server received: quit
Server sent: >>>you sent: quit
CLOSING

Client Output is

C:\sandbox\ruby_files>ruby clnt2.rb
>>>you sent: Message: 1
Client Received: >>>you sent: Message: 1
>>>you sent: Message: 2
Client Received: >>>you sent: Message: 2

problem is server shuts down before sending the message.Any Help ?

Thanks

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

2 Answers

Justin Collins

9/18/2008 10:19:00 PM

0

Bala Murugan wrote:
> Hi All
>
> My Server code is
> $stderr.sync = $stdout.sync = true
> require 'rubygems'
> require 'eventmachine'
>
> module EchoServer
> def receive_data data
> puts "Server received: #{data}"
> send_data ">>>you sent: #{data}"
> puts "Server sent: >>>you sent: #{data}"
> (puts "CLOSING"; send_data "quit"; close_connection(true);
> EM.stop) if data =~ /quit/i
> end
> end
>
> EM::run{
> EM::start_server "127.0.0.1", 8100, EchoServer
> }
>
>
> Client code is
>
> $stderr.sync = $stdout.sync = true
> require 'rubygems'
> require 'eventmachine'
>
> class EchoClient < EM::Connection
> def receive_data data
> puts data
> puts "Client Received: #{data}"
> (puts "CLOSING"; close_connection(false); EM.stop) if data =~
> /quit/i
> end
> end
> cnt=0
> EM::run {
> emc = EM::connect "127.0.0.1", 8100, EchoClient
> EM.add_periodic_timer(5) do
> cnt +=1;
> if cnt < 3
> emc.send_data "Message: #{cnt}"
> else
> emc.send_data "quit"
> end
> end
> }
> #### End client code ####
>
>
>
>
>
> Server Output is
>
> C:\sandbox\ruby_files>ruby serv2.rb
> Server received: Message: 1
> Server sent: >>>you sent: Message: 1
> Server received: Message: 2
> Server sent: >>>you sent: Message: 2
> Server received: quit
> Server sent: >>>you sent: quit
> CLOSING
>
> Client Output is
>
> C:\sandbox\ruby_files>ruby clnt2.rb
>
>>>> you sent: Message: 1
>>>>
> Client Received: >>>you sent: Message: 1
>
>>>> you sent: Message: 2
>>>>
> Client Received: >>>you sent: Message: 2
>
> problem is server shuts down before sending the message.Any Help ?
>
> Thanks
>
> Bala
>

Maybe try using close_connection(true) or close_connection_after_writing.

-Justin

Bala Murugan

9/19/2008 6:08:00 AM

0


No use.it is same even after using close_connection_after_writing or
close_connection(true)
--
Posted via http://www.ruby-....