[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/src/lynq/packages/apps/lynq-tcpser/lynq_tcpser.c b/src/lynq/packages/apps/lynq-tcpser/lynq_tcpser.c
new file mode 100644
index 0000000..fb97a16
--- /dev/null
+++ b/src/lynq/packages/apps/lynq-tcpser/lynq_tcpser.c
@@ -0,0 +1,80 @@
+#include <stdio.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <strings.h>
+#include <unistd.h>
+#include "liblog/liblog.h"
+#include "liblog/lynq_deflog.h"
+
+#define USER_LOG_TAG "TCPSER"
+#define SA struct sockaddr
+#define BUF_LEN 128
+#define ERR_SOCK 3
+
+int main(int argc, const char *argv[])
+{
+ int sockfd,confd;
+ char buf[BUF_LEN];
+ int ret_recv;
+ int ret_bind;
+
+ LYLOGEINIT(USER_LOG_TAG);
+ sockfd=socket(AF_INET,SOCK_STREAM,0);
+
+ if(sockfd<0)
+ {
+ LYDBGLOG("fail to socket\n");
+ return ERR_SOCK;
+ }
+ struct sockaddr_in seraddr;
+ seraddr.sin_family=AF_INET;
+ seraddr.sin_port=htons(50000);
+ seraddr.sin_addr.s_addr=inet_addr("0.0.0.0");
+
+ ret_bind=bind(sockfd,(SA *)&seraddr,sizeof(seraddr));
+ if(ret_bind<0)
+ {
+ LYDBGLOG("fail to bind\n");
+ return ERR_SOCK;
+ }
+
+ listen(sockfd,5);
+
+ while(1)
+ {
+ confd=accept(sockfd,NULL,NULL);
+ //printf("confd =%d\n",confd);
+ if(confd<0)
+ {
+ LYDBGLOG("fail to accept\n");
+ return ERR_SOCK;
+ }
+
+ while(1)
+ {
+ bzero(buf,sizeof(buf));
+
+ ret_recv=recv(confd,buf,sizeof(buf),0);
+
+ if(ret_recv<0)
+ {
+ LYDBGLOG("fail to recv\n");
+ return ERR_SOCK;
+ }
+ if(ret_recv==0)
+ {
+ close(confd);
+ LYDBGLOG("closed,confd =%d\n",confd);
+ break;
+ }
+
+ LYVERBLOG("+[tcpser]: ser_rcv = %s\n",buf);
+ send(confd,buf,sizeof(buf),0);
+ }
+
+ }
+
+
+ return 0;
+}