vppcom_server.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <vcl/vppcom.h>
// vppcom
// ./vppcom_server 192.168.0.29 8888
int main(int argc, char *argv[]) {
int rv = 0;
printf("vppcom server: %d\n", argc);
if (argc < 3) return -1;
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(struct sockaddr_in ));
servaddr.sin_family = AF_INET;
//servaddr.sin_addr
inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
servaddr.sin_port = atoi(argv[2]);
rv = vppcom_app_create("vppcom_server\n");
if (rv) {
printf("vppcom_app_create\n");
return -1;
}
int listenfd = vppcom_session_create(VPPCOM_PROTO_TCP, 0);
if (listenfd < 0) {
return -1;
}
printf("vppcom_session_create: %s, %s\n", argv[1], argv[2]);
vppcom_endpt_t endpt;
memset(&endpt, 0, sizeof(endpt));
endpt.is_ip4 = 1;
endpt.ip = (uint8_t*)&servaddr.sin_addr;
endpt.port = htons(servaddr.sin_port); //
rv = vppcom_session_bind(listenfd, &endpt);
if (rv < 0) {
printf("vppcom_session_bind failed\n");
return -1;
}
rv = vppcom_session_listen(listenfd, 10);
if (rv < 0) {
printf("vppcom_session_listen failed\n");
return -1;
}
vppcom_endpt_t clientpt;
int clientfd = vppcom_session_accept(listenfd, &clientpt, 0);
if (clientfd < 0) {
printf("vppcom_session_accept failed\n");
return -1;
}
char buffer[1024];
memset(buffer, 0,sizeof(buffer));
rv = vppcom_session_read(clientfd, buffer, sizeof(buffer));
if (rv < 0) {
printf("vppcom_session_accept failed\n");
return -1;
}
printf("Received from client length: %d , %s\n", rv, buffer);
rv = vppcom_session_write(clientfd, buffer, rv);
vppcom_session_close(clientfd);
vppcom_app_destroy();
return 0;
}
vppcom_client.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <vcl/vppcom.h>
// vppcom
// ./vppcom_client 192.168.0.29 8888
int main(int argc, char *argv[]) {
int rv = 0;
printf("vppcom server: %d\n", argc);
if (argc < 3) return -1;
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(struct sockaddr_in ));
servaddr.sin_family = AF_INET;
//servaddr.sin_addr
inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
servaddr.sin_port = atoi(argv[2]);
rv = vppcom_app_create("vppcom_server\n");
if (rv) {
printf("vppcom_app_create\n");
return -1;
}
int connfd = vppcom_session_create(VPPCOM_PROTO_TCP, 0);
if (connfd < 0) {
return -1;
}
printf("vppcom_session_create: %s, %s\n", argv[1], argv[2]);
vppcom_endpt_t endpt;
memset(&endpt, 0, sizeof(endpt));
endpt.is_ip4 = 1;
endpt.ip = (uint8_t*)&servaddr.sin_addr;
endpt.port = htons(servaddr.sin_port); //
rv = vppcom_session_connect(connfd, &endpt);
if (rv < 0) {
printf("vppcom_session_bind failed\n");
return -1;
}
char *str = "vppcomclient\n";
rv = vppcom_session_write(connfd, str, strlen(str));
if (rv < 0) {
printf("vppcom_session_accept failed\n");
return -1;
}
char buffer[1024] = {0};
rv = vppcom_session_read(connfd, buffer, sizeof(buffer));
if (rv < 0) {
printf("vppcom_session_accept failed\n");
return -1;
}
printf("Received from client length: %d , %s\n", rv, buffer);
vppcom_session_close(connfd);
vppcom_app_destroy();
return 0;
}