summaryrefslogtreecommitdiffstats
path: root/testcode/app_example/func-test/file_transfer
diff options
context:
space:
mode:
authorsharath reddy <bs.reddy@huawei.com>2019-06-04 11:53:49 +0530
committersharath reddy <bs.reddy@huawei.com>2019-06-04 20:38:30 +0530
commit2a42ad20b9730706ad371ae3787d4597c4e42276 (patch)
treefa01cd312586ea007468e7233f94c0ce53d75873 /testcode/app_example/func-test/file_transfer
parenta826fe833d3f2a8fe2673fa05811fe1a22baf045 (diff)
Feature: 19.04 part-2DMM-2
Change-Id: I0b52a6bb67c25c7955d58e29eb81a3cc9efea9e9 Signed-off-by: sharath reddy <bs.reddy@huawei.com>
Diffstat (limited to 'testcode/app_example/func-test/file_transfer')
-rw-r--r--testcode/app_example/func-test/file_transfer/CMakeLists.txt30
-rw-r--r--testcode/app_example/func-test/file_transfer/client_filetrans.c276
-rw-r--r--testcode/app_example/func-test/file_transfer/server_filetrans.c336
3 files changed, 0 insertions, 642 deletions
diff --git a/testcode/app_example/func-test/file_transfer/CMakeLists.txt b/testcode/app_example/func-test/file_transfer/CMakeLists.txt
deleted file mode 100644
index e4f653a..0000000
--- a/testcode/app_example/func-test/file_transfer/CMakeLists.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-#########################################################################
-#
-# Copyright (c) 2018 Huawei Technologies Co.,Ltd.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#########################################################################
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -fPIC -m64 -mssse3 -std=gnu89")
-
-LINK_DIRECTORIES(${LIB_PATH_SHARED} ${LIB_PATH_STATIC})
-
-ADD_EXECUTABLE(vc_serv_file server_filetrans.c)
-TARGET_LINK_LIBRARIES(vc_serv_file libnStackAPI.so -lpthread -lrt)
-
-ADD_EXECUTABLE(vc_cli_file client_filetrans.c)
-TARGET_LINK_LIBRARIES(vc_cli_file libnStackAPI.so -lpthread -lrt)
-
-ADD_EXECUTABLE(kc_serv_file server_filetrans.c)
-TARGET_LINK_LIBRARIES(kc_serv_file pthread)
-
-ADD_EXECUTABLE(kc_cli_file client_filetrans.c)
-TARGET_LINK_LIBRARIES(kc_cli_file pthread)
diff --git a/testcode/app_example/func-test/file_transfer/client_filetrans.c b/testcode/app_example/func-test/file_transfer/client_filetrans.c
deleted file mode 100644
index f0e2a80..0000000
--- a/testcode/app_example/func-test/file_transfer/client_filetrans.c
+++ /dev/null
@@ -1,276 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <ctype.h>
-char *END_FLAG = "=================END";
-#define HEXCONVERT_COLS 8
-#define HEX_CONVERT 1
-//#define DEBUG 1
-#define out(fmt, arg...) (void)printf(fmt, ##arg)
-
-#ifdef DEBUG
-#define DBG(fmt, arg...) do { \
- out("[Debug] " fmt, ##arg); \
- } while (0)
-#else
-#define DBG(fmt, arg...) ((void)0)
-#endif
-
-void error(const char *msg)
-{
- perror(msg);
- out("./client_tcp [server_ip_address] [port number] [filename] [client_ip_address]\n");
- exit(1);
-}
-
-#if defined(HEX_CONVERT) && defined(DEBUG)
-void hexconvert(void *mem, unsigned int len)
-{
- unsigned int i;
-
- for (i = 0;
- i <
- len +
- ((len % HEXCONVERT_COLS) ? (HEXCONVERT_COLS -
- len % HEXCONVERT_COLS) : 0); i++)
- {
- /* print offset */
- if (i % HEXCONVERT_COLS == 0)
- {
- DBG("\n0x%06x: ", i);
- }
-
- /*print hex data */
- if (i < len)
- {
- DBG("%02x ", 0xFF & ((char *) mem)[i]);
- }
- else /* end of block, just aligning for ASCII dump */
- {
- DBG("\n");
- }
- }
-}
-#endif
-
-void tcp(char **pArgv)
-{
-
- int sockfd, portno;
- char buff[1024];
-
- struct sockaddr_in serv_addr, cli_addr;
- struct hostent *server;
-
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd < 0)
- {
- error("error in socket creation\n");
- }
- out("socket create successful\n");
-
- portno = atoi(pArgv[2]);
- server = gethostbyname(pArgv[1]);
-
- if (server == NULL)
- {
- fprintf(stderr, "error no such host\n");
- }
-
- bzero((char *) &serv_addr, sizeof(serv_addr));
- serv_addr.sin_family = AF_INET;
- bcopy((char *) server->h_addr, (char *) &serv_addr.sin_addr,
- server->h_length);
- serv_addr.sin_port = htons(portno);
- bzero((char *) &cli_addr, sizeof(serv_addr));
-
- cli_addr.sin_family = AF_INET;
- cli_addr.sin_addr.s_addr = inet_addr(pArgv[4]);
- cli_addr.sin_port = htons(portno);
- if (bind(sockfd, (struct sockaddr *) &cli_addr, sizeof(cli_addr)) < 0)
- {
- error("bind fail");
- }
- out("Bind successful\n");
-
- if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) <
- 0)
- {
- error("connection fail");
- }
- out("connection done\n");
-
- FILE *file;
- int filebyte = 0;
- int lsize, totalsize = 0;
-
- file = fopen(pArgv[3], "r");
- fseek(file, 0, SEEK_END);
- lsize = ftell(file);
- rewind(file);
- out("Name of file: %s, Size of file : %d\n", pArgv[3], lsize);
- if (write(sockfd, &lsize, sizeof(int)) == -1)
- {
- out("error executing write\n");
- }
- if (write(sockfd, pArgv[3], 255) == -1)
- {
- out("error executing write\n");
- }
- while (lsize > totalsize)
- {
- bzero(buff, 1024);
- fseek(file, totalsize, SEEK_SET);
- filebyte = fread(buff, 1, sizeof(buff), file);
- if (filebyte == 0)
- {
- printf("file End of file\n");
- break;
- }
-
- if (filebyte < 0)
- error("error in reading file. \n");
-#if defined(HEX_CONVERT) && defined(DEBUG)
- DBG("=========================================\n");
- hexconvert(buff, filebyte);
- DBG("=========================================\n");
-#endif
-
- void *p = buff;
- totalsize += filebyte;
-
- while (filebyte > 0)
- {
-#ifdef DEBUG
- DBG("=========================================\n");
- puts((const char *) p);
- DBG("=========================================\n");
-#endif
- int bytes_written = write(sockfd, p, filebyte);
- if (bytes_written <= 0)
- {
- error("error in Socket write.\n");
- }
-
- filebyte -= bytes_written;
- p += bytes_written;
-//#if DEBUG
- DBG("Total size of file = %d, Total Bytes sent to socket = %d, bytes_written in each step = %d\n", lsize, totalsize, bytes_written);
-//#endif
- }
- }
- out("file has been sent successfully\n");
- out("Final Total size of file = %d, Total Bytes sent to socket = %d\n",
- lsize, totalsize);
-
- fclose(file);
- sleep(60);
- close(sockfd);
- return;
-}
-
-void udp(char **pArgv)
-{
- int sockfd, n, fd, sz, portno, MAXLINE;
- FILE *fp;
- struct sockaddr_in servaddr, cliaddr;
- char *buf;
- char *target, *path;
- portno = atoi(pArgv[2]);
- bzero(&servaddr, sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- servaddr.sin_port = htons(portno);
- servaddr.sin_addr.s_addr = inet_addr(pArgv[1]);
- bzero(&cliaddr, sizeof(servaddr));
- cliaddr.sin_family = AF_INET;
- cliaddr.sin_port = htons(portno);
- cliaddr.sin_addr.s_addr = inet_addr(pArgv[3]);
- sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sockfd < 0)
- {
- out("error in socket creation\n");
- }
- out("socket create successful\n");
-
- if (bind(sockfd, (struct sockaddr *) &cliaddr, sizeof(cliaddr)) < 0)
- {
- out("bind fail");
- }
- out("Bind successful\n");
-
- path = pArgv[4];
- target = pArgv[5];
- MAXLINE = atoi(pArgv[6]);
- buf = malloc(MAXLINE * sizeof(int));
- fp = fopen(path, "r");
- fseek(fp, 0L, SEEK_END);
- sz = ftell(fp);
- out("The size of the path file is %d", sz);
- sendto(sockfd, target, strlen(target), 0,
- (struct sockaddr *) &servaddr, sizeof(servaddr));
- n = recvfrom(sockfd, buf, MAXLINE, 0, NULL, NULL);
- if (!strncmp(buf, "ok", 2))
- {
- out("Filename sent.\n");
- }
-
- fd = open(path, O_RDONLY);
- while ((n = read(fd, buf, MAXLINE)) > 0)
- {
- sendto(sockfd, buf, n, 0, (struct sockaddr *) &servaddr,
- sizeof(servaddr));
- }
- sendto(sockfd, END_FLAG, strlen(END_FLAG), 0,
- (struct sockaddr *) &servaddr, sizeof(servaddr));
- fclose(fp);
- sleep(60);
- close(sockfd);
- return;
-}
-
-int main(int argc, char *argv[])
-{
- int i;
- char **pArgv, str[10];
- pArgv = (char **) malloc(sizeof(char *) * 10);
- for (i = 0; i < 10; i++)
- {
- pArgv[i] = (char *) malloc(sizeof(char) * 20);
- }
- printf("%s", argv[1]);
-
- if (strcmp("tcp", argv[1]) == 0)
- {
- strcpy(pArgv[0], "tcp");
- printf("pArgv[0]=%s", pArgv[0]);
- /* The arguments of tcp are [server_ip_address] [port number] [filename] [client_ip_address] */
- for (i = 1; i < 5; i++)
- {
- strcpy(pArgv[i], argv[i + 1]);
- }
- tcp(pArgv);
- }
-
- else
- {
- strcpy(str, argv[1]);
- if (strcmp("udp", str) == 0)
- {
- strcpy(pArgv[0], "udp");
- printf("pArgv[0]=%s", pArgv[0]);
- /* The arguments of udp are [server_ip_address] [port number] [client_ip_address] [filename] [target_filename] [MAX_BUFFER_LENGTH] */
- for (i = 1; i < 7; i++)
- {
- strcpy(pArgv[i], argv[i + 1]);
- }
- udp(pArgv);
- }
- }
- return 0;
-}
diff --git a/testcode/app_example/func-test/file_transfer/server_filetrans.c b/testcode/app_example/func-test/file_transfer/server_filetrans.c
deleted file mode 100644
index 8b7e25f..0000000
--- a/testcode/app_example/func-test/file_transfer/server_filetrans.c
+++ /dev/null
@@ -1,336 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <ctype.h>
-#include <arpa/inet.h>
-#include <fcntl.h>
-char *END_FLAG = "=================END";
-#define HEXCONVERT_COLS 8
-#define HEX_CONVERT 1
-//#define DEBUG 1
-#define out(fmt, arg...) (void)printf(fmt, ##arg)
-
-#ifdef DEBUG
-#define DBG(fmt, arg...) do { \
- out("[Debug] " fmt, ##arg); \
- } while (0)
-#else
-#define DBG(fmt, arg...) ((void)0)
-#endif
-
-void error(const char *msg)
-{
- perror(msg);
- out("./server_tcp [server_ip_address] [port number]\n");
- exit(1);
-}
-
-#if defined(HEX_CONVERT) && defined(DEBUG)
-void hexconvert(void *mem, unsigned int len)
-{
- unsigned int i;
-
- for (i = 0;
- i <
- len +
- ((len % HEXCONVERT_COLS) ? (HEXCONVERT_COLS -
- len % HEXCONVERT_COLS) : 0); i++)
- {
- /* print offset */
- if (i % HEXCONVERT_COLS == 0)
- {
- DBG("\n0x%06x: ", i);
- }
-
- /*print hex data */
- if (i < len)
- {
- DBG("%02x ", 0xFF & ((char *) mem)[i]);
- }
- else /* end of block, just aligning for ASCII dump */
- {
- DBG("\n");
- }
- }
-}
-#endif
-int compareFiles(FILE * fp1, FILE * fp2)
-{
-
- char ch1 = getc(fp1);
- char ch2 = getc(fp2);
- int error = 0, pos = 0, line = 1;
-
- while (ch1 != EOF && ch2 != EOF)
- {
- pos++;
- if (ch1 == '\n' && ch2 == '\n')
- {
- line++;
- pos = 0;
- }
-
- if (ch1 != ch2)
- {
- error++;
- DBG("Line Number : %d \tError" " Position :%d \n", line, pos);
- }
-
- ch1 = getc(fp1);
- ch2 = getc(fp2);
- }
-
- //printf("Total Errors : %d\t", error);
- return error;
-}
-
-void tcp(char **pArgv)
-{
-
- int sockfd, newsockfd, portno;
- char buff[1024], filename[255];
-
- struct sockaddr_in serv_addr, cli_addr;
- socklen_t clilen;
-
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd < 0)
- {
- error("error in socket creation");
- }
- out("socket create successful\n");
-
- bzero((char *) &serv_addr, sizeof(serv_addr));
- portno = atoi(pArgv[2]);
-
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = inet_addr(pArgv[1]);
- serv_addr.sin_port = htons(portno);
-
- if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
- {
- error("bind fail");
- }
- out("Bind successful\n");
- listen(sockfd, 5);
- clilen = sizeof(cli_addr);
-
- newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
- if (newsockfd < 0)
- {
- error("error in accept");
- }
- out("socket accept succesful\n");
- bzero(buff, 1024);
-
- FILE *fp;
- int lSize = 0, totallSize = 0;
-
- bzero(filename, 255);
-
- fclose(fopen("receive_file.txt", "w"));
- if (system("chmod +x *") == -1)
- {
- out(" incorrect use of system\n");
- }
- fp = fopen("receive_file.txt", "a");
-
- if (read(newsockfd, &lSize, sizeof(int)) == -1)
- {
- out("error executing read\n");
- }
- if (read(newsockfd, filename, sizeof(filename)) == -1)
- {
- out("error executing read\n");
- }
-
- while (lSize > totallSize)
- {
- int bytes_read = 0;
- bzero(buff, 1024);
-
- bytes_read = read(newsockfd, buff, 1024);
-
- if (bytes_read == 0)
- {
- break;
- }
-
- if (bytes_read < 0)
- {
- error("error in Socket read.\n");
- }
-
-#if defined(HEX_CONVERT) && defined(DEBUG)
- DBG("=========================================\n");
- hexconvert(buff, bytes_read);
- DBG("=========================================\n");
-#endif
-#ifdef DEBUG
- DBG("=========================================\n");
- puts((const char *) buff);
- DBG("=========================================\n");
-#endif
- totallSize += bytes_read;
-
- if (fwrite(buff, 1, bytes_read, fp) == -1)
- {
- error("error in file write\n");
- }
-//#if DEBUG
- DBG("Total size of file = %d, Total Bytes sent to socket = %d, bytes_read in each step = %d\n", lSize, totallSize, bytes_read);
-//#endif
- }
- out("file name = %s\n", filename);
- out("Final total size of file = %d, total read from socket = %d\n", lSize,
- totallSize);
- out("copy complete\n");
- fclose(fp);
-
- FILE *fp1 = fopen("receive_file.txt", "r");
- FILE *fp2 = fopen(filename, "r");
-
- fseek(fp2, 0L, SEEK_END);
- int lfile_size = ftell(fp2);
- rewind(fp2);
- if (lfile_size != lSize)
- {
- out("Size unmatch...\n");
- }
- else
- {
- out("Size match...\n");
- }
-
- if (compareFiles(fp1, fp2) > 0)
- {
- out("file unmatch...\n");
- }
- else
- {
- out("file match...\n");
- }
-
- close(newsockfd);
- close(sockfd);
- return;
-}
-
-void
-run(int sockfd, struct sockaddr *cliaddr, socklen_t clilen, char *res_buf,
- int MAXLINE)
-{
- int n, fd;
- socklen_t len;
- char *buf, *buf2;
- FILE *fp1, *fp2;
- buf = malloc(MAXLINE + 1);
- len = clilen;
- n = recvfrom(sockfd, buf, MAXLINE, 0, cliaddr, &len);
- buf[n] = 0;
- out("Received from client:[%s] \n", buf);
- buf2 = malloc(MAXLINE);
- strcpy(buf2, buf);
- sendto(sockfd, "ok", strlen("ok"), 0, cliaddr, len);
- fd = open(buf, O_RDWR | O_CREAT, 0666);
- while ((n = recvfrom(sockfd, buf, MAXLINE, 0, cliaddr, &len)))
- {
- buf[n] = 0;
- //out("%s", buf);
- if (!(strcmp(buf, END_FLAG)))
- {
- break;
- }
- if (write(fd, buf, n) == -1)
- {
- out("error in executing write\n");
- }
- }
- fp1 = fopen(buf2, "r");
- fp2 = fopen(res_buf, "r");
-
- if (compareFiles(fp1, fp2) == 0)
- {
- out("\nPass:The contents of the files are same");
- }
- else
- {
- out("\nFail:The contents of the files are different");
- }
- close(fd);
-}
-
-void udp(char **pArgv)
-{
- int sockfd, portno, MAXLINE;
- struct sockaddr_in servaddr, cliaddr;
- char *res_buf;
- res_buf = pArgv[3];
-
- portno = atoi(pArgv[2]);
- MAXLINE = atoi(pArgv[4]);
- sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sockfd < 0)
- {
- out("error in socket creation\n");
- }
- out("socket create successful\n");
-
- bzero(&servaddr, sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- servaddr.sin_addr.s_addr = inet_addr(pArgv[1]);
- servaddr.sin_port = htons(portno);
-
- if (bind(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0)
- {
- out("bind fail");
- }
- out("Binded successfully\n");
- fd_set read_fds;
- FD_ZERO(&read_fds);
- FD_SET(sockfd, &read_fds);
- int fdmax = sockfd;
- if (FD_ISSET(sockfd, &read_fds))
- {
- run(fdmax, (struct sockaddr *) &cliaddr, sizeof(cliaddr), res_buf,
- MAXLINE);
- }
- return;
-}
-
-int main(int argc, char *argv[])
-{
- int i, j;
- char **pArgv;
- pArgv = (char **) malloc(sizeof(char *) * 10);
- for (i = 0; i < 10; i++)
- {
- pArgv[i] = (char *) malloc(sizeof(char) * 20);
- }
- if (strcmp("tcp", argv[1]) == 0)
- {
- strcpy(pArgv[0], "tcp");
- /* The arguments of tcp are [server_ip_address] [port number] */
- for (i = 1; i < 3; i++)
- {
- strcpy(pArgv[i], argv[i + 1]);
- }
- tcp(pArgv);
- }
- else if (strcmp("udp", argv[1]) == 0)
- {
- strcpy(pArgv[0], "udp");
- /* The arguments of udp are [server_ip_address] [port number] [filename] [MAX_BUFFER_LENGTH] */
- for (i = 1; i < 5; i++)
- {
- strcpy(pArgv[i], argv[i + 1]);
- }
- udp(pArgv);
- }
-
- return 0;
-}