You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by "Guridi, Diego" <dg...@comscore.com> on 2010/03/04 17:02:55 UTC

Catching the "Connection refused" exception in c++

Hi Everyone,

I am creating a thrift client in c++

In a class, I declared the:

shared_ptr<TSocket> socket;
shared_ptr<TTransport> transport;
shared_ptr<TPtotocol> protocol;

as private properties..

Later I call a connect method that looks like this

socket = shared_ptr<TSocket>(new TSocket("localhost", 9090));
transport  = shared_ptr<TTransport>(new TBufferedTransport(socket));
protocol = shared_ptr<TProtocol>(new TBinaryProtocol(transport));

This works perfectly as long as the server is running.

The thing is, that I need to handle the case when the server is not running.. so for this I have tried

socket = shared_ptr<TSocket>(new TSocket("localhost", 9090));
if(!socket){
            //handle here
}
transport  = shared_ptr<TTransport>(new TBufferedTransport(socket));
if(!transport){
            //handle here
}
protocol = shared_ptr<TProtocol>(new TBinaryProtocol(transport));
if(!protocol){
            //handle here
}

I got that from scribe, using a code file that implemented a thrift client, but it does not work at all.. when the connection is refused,  the !socket should return true for the if, and the handle code should be executed, and it doesn't.

I also tried catching a TException and a default exception... nothing happened..

Any thoughts about how to do this???

Thank you!!!




Diego Guridi Subgerente de Desarrollo | comScore, Inc. (NASDAQ:SCOR)

o  +56 2 242 8162 | dguridi@comscore.com
............................................................................................................................

Certifica is now part of comScore
Measuring the Digital World

Introducing Media Metrix 360, Panel-Centric Digital Audience Measurement
www.comscore.com/MMX360<http://www.comscore.com/MMX360>

RE: Catching the "Connection refused" exception in c++

Posted by "Guridi, Diego" <dg...@comscore.com>.
Sorry about this... the Connection refused was not thrown by the socket declarations.. my mistake


Diego Guridi Subgerente de Desarrollo | comScore, Inc. (NASDAQ:SCOR)

o +56 2 242 8162 | dguridi@comscore.com
............................................................................................................................

Certifica is now part of comScore
Measuring the Digital World

Introducing Media Metrix 360, Panel-Centric Digital Audience Measurement
http://www.comscore.com/MMX360
-----Original Message-----

From: Guridi, Diego [mailto:dguridi@comscore.com]
Sent: Thursday, March 04, 2010 1:03 PM
To: thrift-user@incubator.apache.org
Subject: Catching the "Connection refused" exception in c++

Hi Everyone,

I am creating a thrift client in c++

In a class, I declared the:

shared_ptr<TSocket> socket;
shared_ptr<TTransport> transport;
shared_ptr<TPtotocol> protocol;

as private properties..

Later I call a connect method that looks like this

socket = shared_ptr<TSocket>(new TSocket("localhost", 9090));
transport  = shared_ptr<TTransport>(new TBufferedTransport(socket));
protocol = shared_ptr<TProtocol>(new TBinaryProtocol(transport));

This works perfectly as long as the server is running.

The thing is, that I need to handle the case when the server is not running.. so for this I have tried

socket = shared_ptr<TSocket>(new TSocket("localhost", 9090));
if(!socket){
            //handle here
}
transport  = shared_ptr<TTransport>(new TBufferedTransport(socket));
if(!transport){
            //handle here
}
protocol = shared_ptr<TProtocol>(new TBinaryProtocol(transport));
if(!protocol){
            //handle here
}

I got that from scribe, using a code file that implemented a thrift client, but it does not work at all.. when the connection is refused,  the !socket should return true for the if, and the handle code should be executed, and it doesn't.

I also tried catching a TException and a default exception... nothing happened..

Any thoughts about how to do this???

Thank you!!!




Diego Guridi Subgerente de Desarrollo | comScore, Inc. (NASDAQ:SCOR)

o  +56 2 242 8162 | dguridi@comscore.com
............................................................................................................................

Certifica is now part of comScore
Measuring the Digital World

Introducing Media Metrix 360, Panel-Centric Digital Audience Measurement
www.comscore.com/MMX360<http://www.comscore.com/MMX360>