[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/src/lynq/packages/apps/lynq-udpcli/lynq_udpcli.c b/src/lynq/packages/apps/lynq-udpcli/lynq_udpcli.c
new file mode 100644
index 0000000..de42922
--- /dev/null
+++ b/src/lynq/packages/apps/lynq-udpcli/lynq_udpcli.c
@@ -0,0 +1,60 @@
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include<stdlib.h>
+#include <netinet/in.h>
+#include <strings.h>
+#include "liblog/liblog.h"
+#include "liblog/lynq_deflog.h"
+
+
+#define USER_LOG_TAG "UDPCLI"
+#define BUF_LEN 128
+#define ERR_CMDVALID 2
+#define ERR_SOCK 3
+#define SA struct sockaddr
+
+int main(int argc, const char *argv[])
+{
+ int sockfd;
+ char buf[BUF_LEN];
+
+
+ LYLOGEINIT(USER_LOG_TAG);
+ if(argc!=3)
+ {
+ LYDBGLOG("argv is wrong, please input ip and port\n");
+ LYVERBLOG("+[udpcli]: error num = %d\n", ERR_CMDVALID);
+ return ERR_CMDVALID;
+ }
+
+ sockfd=socket(AF_INET,SOCK_DGRAM,0);
+
+ if(sockfd<0)
+ {
+ LYDBGLOG("fail to sockfd\n");
+ return ERR_SOCK;
+ }
+
+ struct sockaddr_in seraddr;
+ seraddr.sin_family=AF_INET;
+ seraddr.sin_port=htons(atoi(argv[2]));
+ seraddr.sin_addr.s_addr=inet_addr(argv[1]);
+
+ int len=sizeof(seraddr);
+
+ while(1)
+ {
+ bzero(buf,sizeof(buf));
+
+ fgets(buf,sizeof(buf),stdin);
+
+ sendto(sockfd,buf,sizeof(buf),0,(SA *)&seraddr,len);
+
+ recvfrom(sockfd,buf,sizeof(buf),0,NULL,NULL);
+
+ LYVERBLOG("+[udpcli]: cli_rcv = %s\n",buf);
+ }
+ return 0;
+}