diff --git a/dap_client.c b/dap_client.c
index 79494b10eb52b7f699351628438b04683a195b68..78126df7661b82b95b2a8d2645f74faafb3ab397 100644
--- a/dap_client.c
+++ b/dap_client.c
@@ -1,10 +1,8 @@
 #include <string.h>
 #include <stdbool.h>
-
+#include <unistd.h>
 
 #include "dap_common.h"
-
-
 #include "dap_http_client.h"
 #include "dap_client.h"
 #include "dap_client_pvt.h"
@@ -267,6 +265,21 @@ void dap_client_request(dap_client_t * a_client, const char * a_full_path, void
     dap_client_pvt_request(l_client_internal, a_full_path, a_request, a_request_size, a_response_proc, a_response_error);
 }
 
+/**
+ * @brief dap_client_disconnect
+ * @param a_client
+ * @return
+ */
+int dap_client_disconnect(dap_client_t * a_client)
+{
+    dap_client_pvt_t * l_client_internal = DAP_CLIENT_PVT(a_client);
+    if(l_client_internal->stream_socket){
+        close(l_client_internal->stream_socket);
+        return 1;
+    }
+    //l_client_internal->stream_socket = 0;
+    return -1;
+}
 
 /**
  * @brief dap_client_error_str
diff --git a/dap_client.h b/dap_client.h
index 9d79be1ef7f4403c79d5615bfbb80ed31bae0f6e..2d8093a518088cef049ec433d4bc49e9292464b7 100644
--- a/dap_client.h
+++ b/dap_client.h
@@ -114,6 +114,7 @@ void dap_client_request_enc(dap_client_t * a_client, const char * a_path,const c
 void dap_client_request(dap_client_t * a_client, const char * a_full_path, void * a_request, size_t a_request_size,
                                 dap_client_callback_data_size_t a_response_proc, dap_client_callback_int_t a_response_error);
 
+int dap_client_disconnect(dap_client_t * a_client);
 
 const char * dap_client_get_stage_str(dap_client_t * a_client);
 const char * dap_client_stage_str(dap_client_stage_t a_stage);