[Feature][T8TSK-30][data]Ril related lib data receive timeout handing mechanism

Change-Id: I9c744c5cb9191a19c0a195730325e50b48fd89c5
diff --git a/src/lynq/lib/liblynq-data/lynq_data.cpp b/src/lynq/lib/liblynq-data/lynq_data.cpp
index bfa0c94..e096d53 100755
--- a/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -14,6 +14,7 @@
 #include "liblog/lynq_deflog.h"
 #include <sys/time.h>
 #include <include/lynq_uci.h>
+#include <errno.h>
 #define LYNQ_SERVICE_PORT 8088
 #define LYNQ_URC_SERVICE_PORT 8086
 #define LYNQ_REC_BUF 8192
@@ -81,6 +82,8 @@
 * @brief temp of apn result info
 */
 char g_lynq_apn_result[1024] = {};
+
+struct sockaddr_in lynq_data_socket_server_addr;
 typedef struct
 {
     char apn[LYNQ_APN_MAX_LEN];
@@ -237,10 +240,10 @@
     char recvline[LYNQ_REC_BUF];
     bzero(recvline,LYNQ_REC_BUF);
     /* receive data from server */
-    len = read(sockfd, recvline, LYNQ_REC_BUF);
-    if(len == -1)
+    len = recvfrom(sockfd,recvline,LYNQ_REC_BUF,0,(struct sockaddr *)&lynq_data_socket_server_addr,(socklen_t *)&lynq_data_socket_server_addr);
+    if(len == -1 && errno == EAGAIN)
     {
-        perror("read error");
+        LYERRLOG("read error");
         return -1;
     }
     if (recvline != NULL) {
@@ -292,12 +295,11 @@
 /*Warren add for T800 platform 2021/11/19 start*/
 int lynq_socket_client_start()
 {
-    struct sockaddr_in lynq_socket_server_addr;
     /* init lynq_socket_server_addr */
-    bzero(&lynq_socket_server_addr, sizeof(lynq_socket_server_addr));
-    lynq_socket_server_addr.sin_family = AF_INET;
-    lynq_socket_server_addr.sin_port = htons(LYNQ_SERVICE_PORT);
-    lynq_socket_server_addr.sin_addr.s_addr = htons(INADDR_ANY);
+    bzero(&lynq_data_socket_server_addr, sizeof(lynq_data_socket_server_addr));
+    lynq_data_socket_server_addr.sin_family = AF_INET;
+    lynq_data_socket_server_addr.sin_port = htons(LYNQ_SERVICE_PORT);
+    lynq_data_socket_server_addr.sin_addr.s_addr = htons(INADDR_ANY);
     /*
     if(inet_pton(AF_INET,"127.0.0.1", &lynq_socket_server_addr.sin_addr) <= 0)
     {
@@ -306,7 +308,16 @@
     }
 */
     lynq_client_sockfd = socket(AF_INET, SOCK_DGRAM, 0);
-    if(connect(lynq_client_sockfd, (struct sockaddr *)&lynq_socket_server_addr, sizeof(lynq_socket_server_addr)) == -1)
+    struct timeval timeOut; 
+
+    timeOut.tv_sec = 5; //ÉèÖÃ5s³¬Ê± 
+    timeOut.tv_usec = 0; 
+
+    if (setsockopt(lynq_client_sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeOut, sizeof(timeOut)) < 0) 
+    { 
+    LYERRLOG("time out setting failed"); 
+    } 
+    if(connect(lynq_client_sockfd, (struct sockaddr *)&lynq_data_socket_server_addr, sizeof(lynq_data_socket_server_addr)) == -1)
     {
         perror("connect error");
         return -1;