diff --git a/lib/cpp/src/transport/TSocket.cpp b/lib/cpp/src/transport/TSocket.cpp
index 8b9048c..e3615ca 100644
--- a/lib/cpp/src/transport/TSocket.cpp
+++ b/lib/cpp/src/transport/TSocket.cpp
@@ -47,6 +47,20 @@
   recvTimeval_.tv_usec = (int)((recvTimeout_%1000)*1000);
 }
 
+TSocket::TSocket() : 
+  host_(""),
+  port_(0),
+  socket_(0),
+  connTimeout_(0),
+  sendTimeout_(0),
+  recvTimeout_(0),
+  lingerOn_(1),
+  lingerVal_(0),
+  noDelay_(1) {
+  recvTimeval_.tv_sec = (int)(recvTimeout_/1000);
+  recvTimeval_.tv_usec = (int)((recvTimeout_%1000)*1000);
+}
+
 TSocket::TSocket(int socket) :
   host_(""),
   port_(0),
@@ -306,6 +320,14 @@
   }
 }
 
+void TSocket::setHost(string host) {
+  host_ = host;
+}
+
+void TSocket::setPort(int port) {
+  port_ = port;
+}
+
 void TSocket::setLinger(bool on, int linger) {
   lingerOn_ = on;
   lingerVal_ = linger;
diff --git a/lib/cpp/src/transport/TSocket.h b/lib/cpp/src/transport/TSocket.h
index 8137984..3decb2c 100644
--- a/lib/cpp/src/transport/TSocket.h
+++ b/lib/cpp/src/transport/TSocket.h
@@ -28,11 +28,19 @@
    * Constructs a new socket. Note that this does NOT actually connect the
    * socket.
    *
+   */
+  TSocket();
+  
+  /**
+   * Constructs a new socket. Note that this does NOT actually connect the
+   * socket.
+   *
    * @param host An IP address or hostname to connect to
    * @param port The port to connect on
    */
   TSocket(std::string host, int port);
 
+
   /**
    * Destroyes the socket object, closing it if necessary.
    */
@@ -73,6 +81,20 @@
   void write(const uint8_t* buf, uint32_t len);
 
   /**
+   * Set the host that socket will connect to
+   *
+   * @param host host identifier
+   */
+  void setHost(std::string host);
+
+  /**
+   * Set the port that socket will connect to
+   *
+   * @param port port number
+   */
+  void setPort(int port);
+
+  /**
    * Controls whether the linger option is set on the socket.
    *
    * @param on      Whether SO_LINGER is on
