# Eventmachine client server problem

**URL:** <https://www.ruby-forum.com/t/eventmachine-client-server-problem/148945>\
**Category:** Ruby\
**Created:** [September 18, 2008, 3:24pm UTC](https://www.ruby-forum.com/t/eventmachine-client-server-problem/148945 "2008-09-18T15:24:29Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![baluvee](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e68b1a/32.png) [@baluvee](https://www.ruby-forum.com/u/baluvee)\
**Post date:** [September 18, 2008, 3:24pm UTC](https://www.ruby-forum.com/t/eventmachine-client-server-problem/148945/1 "2008-09-18T15:24:29Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![baluvee](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e68b1a/32.png) [@baluvee](https://www.ruby-forum.com/u/baluvee)\
**Post date:** [September 19, 2008, 12:27am UTC](https://www.ruby-forum.com/t/eventmachine-client-server-problem/148945/2 "2008-09-19T00:27:27Z")

</div>

Bala Murugan wrote:

> ```
> send_data ">>>you sent: #{data}"
> 
> (puts "CLOSING"; close_connection(false); EM.stop) if data =~
> else
> 
> ```
> 
> Server Output is  
> Client Output is
> 
> 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

---

<div class="post-metadata">

**Author:** ![baluvee](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e68b1a/32.png) [@baluvee](https://www.ruby-forum.com/u/baluvee)\
**Post date:** [September 19, 2008, 8:16am UTC](https://www.ruby-forum.com/t/eventmachine-client-server-problem/148945/3 "2008-09-19T08:16:00Z")

</div>

No use.it is same even after using close\_connection\_after\_writing or  
close\_connection(true)
