usability fixes and removal of unfinished test items
This commit is contained in:
@@ -1,74 +0,0 @@
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
#include <sys/socket.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("cpp_udp_socket_client_test():\n");
|
||||
ssize_t n_sent;
|
||||
int sock = -1;
|
||||
struct sockaddr_in server;
|
||||
char buf[64];
|
||||
|
||||
if(sock == -1) {
|
||||
sock = socket(AF_INET , SOCK_DGRAM , 0);
|
||||
if (sock == -1) {
|
||||
printf("error creating socket\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
server.sin_addr.s_addr = inet_addr("10.5.5.47");
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_port = htons(8888);
|
||||
|
||||
//char *buf = "Welcome to the Machine\n";
|
||||
memcpy(buf, "Welcome to the Machine", sizeof("Welcome to the Machine"));
|
||||
|
||||
printf("sizeof(buf) = %d\n", sizeof(buf));
|
||||
if (connect(sock , (struct sockaddr *)&server , sizeof(server)) < 0) {
|
||||
printf("api_test: error while connecting.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Repeatedly send UDP datagram
|
||||
char data[1024];
|
||||
memset(data, 0, sizeof(data));
|
||||
int count =0;
|
||||
while(1)
|
||||
{
|
||||
count++;
|
||||
usleep(1000);
|
||||
n_sent = send(sock,data,sizeof(data),0);
|
||||
|
||||
if (n_sent < 0) {
|
||||
perror("Problem sending data");
|
||||
return 1;
|
||||
}
|
||||
if (n_sent != sizeof(buf))
|
||||
printf("sendto sent %d bytes\n",(int)n_sent);
|
||||
printf("n_sent = %d, count = %d\n", n_sent,count);
|
||||
}
|
||||
return 1;
|
||||
|
||||
|
||||
socklen_t recv_addr_len;
|
||||
// Clear address info for RX test
|
||||
server.sin_addr.s_addr = inet_addr("");
|
||||
server.sin_port = htons(-1);
|
||||
|
||||
while (1) {
|
||||
n_sent=recvfrom(sock,buf,sizeof(buf),0,(struct sockaddr *)&server,&recv_addr_len);
|
||||
printf("Got a datagram from %s port %d\n", inet_ntoa(server.sin_addr), ntohs(server.sin_port));
|
||||
if (n_sent<0) {
|
||||
perror("Error receiving data");
|
||||
}
|
||||
else {
|
||||
printf("RXed: %s\n", buf);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
#include <stdio.h> /* standard C i/o facilities */
|
||||
#include <stdlib.h> /* needed for atoi() */
|
||||
#include <unistd.h> /* defines STDIN_FILENO, system calls,etc */
|
||||
#include <sys/types.h> /* system data type definitions */
|
||||
#include <sys/socket.h> /* socket specific definitions */
|
||||
#include <netinet/in.h> /* INET constants and stuff */
|
||||
#include <arpa/inet.h> /* IP address conversion stuff */
|
||||
#include <netdb.h> /* gethostbyname */
|
||||
|
||||
/* this routine echos any messages (UDP datagrams) received */
|
||||
|
||||
#define MAXBUF 1024*10
|
||||
|
||||
void echo( int sd ) {
|
||||
int len,n;
|
||||
char bufin[MAXBUF];
|
||||
struct sockaddr_in remote;
|
||||
|
||||
/* need to know how big address struct is, len must be set before the
|
||||
call to recvfrom!!! */
|
||||
len = sizeof(remote);
|
||||
long count = 0;
|
||||
|
||||
while (1) {
|
||||
sleep(1);
|
||||
count++;
|
||||
|
||||
n=recvfrom(sd,bufin,MAXBUF,0,(struct sockaddr *)&remote,&len);
|
||||
|
||||
/* print out the address of the sender */
|
||||
printf("Got a datagram from %s port %d\n",
|
||||
inet_ntoa(remote.sin_addr), ntohs(remote.sin_port));
|
||||
|
||||
if (n<0) {
|
||||
perror("Error receiving data");
|
||||
} else {
|
||||
printf("GOT %d BYTES (count = %d)\n",n, count);
|
||||
sendto(sd,bufin,n,0,(struct sockaddr *)&remote,len);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
int ld, length;
|
||||
struct sockaddr_in skaddr;
|
||||
|
||||
if ((ld = socket( PF_INET, SOCK_DGRAM, 0 )) < 0) {
|
||||
printf("Problem creating socket\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
skaddr.sin_family = AF_INET;
|
||||
skaddr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
skaddr.sin_port = htons(8888);
|
||||
|
||||
if (bind(ld, (struct sockaddr *) &skaddr, sizeof(skaddr))<0) {
|
||||
printf("Problem binding\n");
|
||||
exit(0);
|
||||
}
|
||||
/*
|
||||
length = sizeof( skaddr );
|
||||
if (getsockname(ld, (struct sockaddr *) &skaddr, &length)<0) {
|
||||
printf("Error getsockname\n");
|
||||
exit(1);
|
||||
}
|
||||
*/
|
||||
printf("The server UDP port number is %d\n",ntohs(skaddr.sin_port));
|
||||
/* Go echo every datagram we get */
|
||||
echo(ld);
|
||||
return 0;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
gcc kq_test_client.c ../../kq.c ../../zt_api.c ../../RPC.c -DSDK_DEBUG -DNETCON_INTERCEPT -o kq_test_client
|
||||
#gcc kq_test_server.c ../../kq.c -o kq_test_server
|
||||
|
||||
gcc server.c -o server
|
||||
#gcc client.c -o client
|
||||
@@ -1,124 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netdb.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/event.h>
|
||||
#include <sys/time.h>
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <pthread.h>
|
||||
#include <time.h>
|
||||
|
||||
void monitor_fds();
|
||||
|
||||
#define MIN_FD 0
|
||||
#define MAX_FD_SCAN_SZ 10
|
||||
|
||||
void die(const char *str) {
|
||||
perror(str);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int make_nonblocking(int fd) {
|
||||
int flags;
|
||||
if (-1 == (flags = fcntl(fd, F_GETFL)))
|
||||
return -1;
|
||||
|
||||
flags |= O_NONBLOCK;
|
||||
|
||||
if (-1 == fcntl(fd, F_SETFL, flags))
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
void changeling()
|
||||
{
|
||||
pthread_t thread;
|
||||
printf("changeling()\n");
|
||||
int i = 7;
|
||||
if(pthread_create(&thread, NULL, monitor_fds, (void *)i)) {
|
||||
die("unable to start changeling thread\n");
|
||||
}
|
||||
}
|
||||
|
||||
struct timespec tmout = { 0, /* block for 5 seconds at most */
|
||||
500000 }; /* nanoseconds */
|
||||
|
||||
void monitor_fds(){
|
||||
//sleep(3);
|
||||
printf("monitor_fds()...\n");
|
||||
struct kevent change[MAX_FD_SCAN_SZ], event[MAX_FD_SCAN_SZ];
|
||||
int sockfd, nev, kq;
|
||||
ssize_t nbytes;
|
||||
int error;
|
||||
char buf[BUFSIZ];
|
||||
|
||||
|
||||
if (-1 == (kq = kqueue()))
|
||||
die("kqueue()");
|
||||
|
||||
|
||||
for(int i=MIN_FD;i<MAX_FD_SCAN_SZ; i++)
|
||||
{
|
||||
printf("registering (%d)\n", i);
|
||||
EV_SET(&change[i-MIN_FD], i, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, 0);
|
||||
//if (-1 == kevent(kq, change, 2, NULL, 0, NULL))
|
||||
// printf(" unable to register (%d)\n", i);
|
||||
}
|
||||
|
||||
//EV_SET(&change[0], STDIN_FILENO, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, 0);
|
||||
//EV_SET(&change[1], sockfd, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, 0);
|
||||
|
||||
if (-1 == kevent(kq, change, 2, NULL, 0, NULL))
|
||||
die("1kevent()");
|
||||
|
||||
for (;;)
|
||||
{
|
||||
//usleep(50);
|
||||
//printf("blocking in kevent()\n");
|
||||
if (-1 == (nev = kevent(kq, NULL, 0, event, 2, NULL)))
|
||||
die("2kevent()");
|
||||
|
||||
if(nev)
|
||||
{
|
||||
printf("kevent() returned %d\n", nev);
|
||||
|
||||
for (int i = 0; i < nev; i++)
|
||||
{
|
||||
printf("event[%d].ident = %d\n", i, event[i].ident);
|
||||
/*
|
||||
if (event[i].ident == STDIN_FILENO)
|
||||
{
|
||||
fgets(buf, sizeof(buf), stdin);
|
||||
|
||||
nbytes = send(sockfd, buf, strlen(buf), 0);
|
||||
|
||||
if (-1 == nbytes)
|
||||
if (EWOULDBLOCK != errno)
|
||||
die("send()");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
while ((nbytes = recv(sockfd, buf, sizeof(buf), 0)) > 0)
|
||||
{
|
||||
|
||||
if (nbytes != write(STDOUT_FILENO, buf, nbytes))
|
||||
{
|
||||
die("write()");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
int changeling();
|
||||
@@ -1,62 +0,0 @@
|
||||
/*
|
||||
C ECHO client example using sockets
|
||||
*/
|
||||
#include <stdio.h> //printf
|
||||
#include <string.h> //strlen
|
||||
#include <sys/socket.h> //socket
|
||||
#include <arpa/inet.h> //inet_addr
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
{
|
||||
int sock;
|
||||
struct sockaddr_in server;
|
||||
char message[1000] , server_reply[2000];
|
||||
|
||||
//Create socket
|
||||
sock = socket(AF_INET , SOCK_STREAM , 0);
|
||||
if (sock == -1)
|
||||
{
|
||||
printf("Could not create socket");
|
||||
}
|
||||
puts("Socket created");
|
||||
|
||||
server.sin_addr.s_addr = inet_addr("127.0.0.1");
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_port = htons( 8889 );
|
||||
|
||||
//Connect to remote server
|
||||
if (connect(sock , (struct sockaddr *)&server , sizeof(server)) < 0)
|
||||
{
|
||||
perror("connect failed. Error");
|
||||
return 1;
|
||||
}
|
||||
|
||||
puts("Connected\n");
|
||||
|
||||
//keep communicating with server
|
||||
while(1)
|
||||
{
|
||||
printf("Enter message : ");
|
||||
scanf("%s" , message);
|
||||
|
||||
//Send some data
|
||||
if(send(sock , message , strlen(message) , 0) < 0)
|
||||
{
|
||||
puts("Send failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Receive a reply from the server
|
||||
if(recv(sock , server_reply , 2000 , 0) < 0)
|
||||
{
|
||||
puts("recv failed");
|
||||
break;
|
||||
}
|
||||
|
||||
puts("Server reply :");
|
||||
puts(server_reply);
|
||||
}
|
||||
|
||||
close(sock);
|
||||
return 0;
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
/*
|
||||
C ECHO client example using sockets
|
||||
*/
|
||||
#include <stdio.h> //printf
|
||||
#include <string.h> //strlen
|
||||
#include <sys/socket.h> //socket
|
||||
#include <arpa/inet.h> //inet_addr
|
||||
|
||||
|
||||
#include "../../kq.h"
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
{
|
||||
changeling();
|
||||
sleep(2);
|
||||
|
||||
int sock;
|
||||
struct sockaddr_in server;
|
||||
char message[1000] , server_reply[2000];
|
||||
|
||||
//Create socket
|
||||
sock = socket(AF_INET , SOCK_STREAM , 0);
|
||||
if (sock == -1)
|
||||
{
|
||||
printf("Could not create socket");
|
||||
}
|
||||
printf("socket() = %d\n", sock);
|
||||
|
||||
|
||||
sleep(5);
|
||||
|
||||
server.sin_addr.s_addr = inet_addr("127.0.0.1");
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_port = htons( 8889 );
|
||||
|
||||
printf("attempting to connect..\n");
|
||||
//Connect to remote server
|
||||
if (connect(sock , (struct sockaddr *)&server , sizeof(server)) < 0)
|
||||
{
|
||||
perror("connect failed. Error");
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Connected\n");
|
||||
|
||||
//keep communicating with server
|
||||
while(1)
|
||||
{
|
||||
printf("Enter message : ");
|
||||
scanf("%s" , message);
|
||||
|
||||
//Send some data
|
||||
if(send(sock , message , strlen(message) , 0) < 0)
|
||||
{
|
||||
puts("Send failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Receive a reply from the server
|
||||
if(recv(sock , server_reply , 2000 , 0) < 0)
|
||||
{
|
||||
puts("recv failed");
|
||||
break;
|
||||
}
|
||||
|
||||
puts("Server reply :");
|
||||
puts(server_reply);
|
||||
}
|
||||
|
||||
close(sock);
|
||||
return 0;
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
#include "../../kq.h"
|
||||
#include <time.h>
|
||||
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
{
|
||||
changeling();
|
||||
sleep(3);
|
||||
|
||||
int socket_desc , client_sock , c , read_size;
|
||||
struct sockaddr_in server , client;
|
||||
char client_message[2000];
|
||||
|
||||
//Create socket
|
||||
socket_desc = socket(AF_INET , SOCK_STREAM , 0);
|
||||
if (socket_desc == -1)
|
||||
{
|
||||
printf("Could not create socket");
|
||||
}
|
||||
printf("Socket (%d)\n", socket_desc);
|
||||
|
||||
//Prepare the sockaddr_in structure
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_addr.s_addr = INADDR_ANY;
|
||||
server.sin_port = htons( 8889 );
|
||||
|
||||
//Bind
|
||||
int bind_fd;
|
||||
if( (bind_fd = bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0))
|
||||
{
|
||||
//print the error message
|
||||
perror("bind failed. Error");
|
||||
return 1;
|
||||
}
|
||||
printf("bound\n");
|
||||
|
||||
//Listen
|
||||
listen(socket_desc , 3);
|
||||
|
||||
//Accept and incoming connection
|
||||
puts("Waiting for incoming connections...");
|
||||
c = sizeof(struct sockaddr_in);
|
||||
|
||||
//accept connection from an incoming client
|
||||
client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
|
||||
if (client_sock < 0)
|
||||
{
|
||||
perror("accept failed");
|
||||
return 1;
|
||||
}
|
||||
printf("Connection accepted (%d)\n", client_sock);
|
||||
|
||||
//Receive a message from client
|
||||
while( (read_size = recv(client_sock , client_message , 2000 , 0)) > 0 )
|
||||
{
|
||||
//Send the message back to client
|
||||
write(client_sock , client_message , strlen(client_message));
|
||||
}
|
||||
|
||||
if(read_size == 0)
|
||||
{
|
||||
puts("Client disconnected");
|
||||
sleep(1);
|
||||
//fflush(stdout);
|
||||
}
|
||||
else if(read_size == -1)
|
||||
{
|
||||
perror("recv failed");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
C socket server example
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h> //strlen
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h> //inet_addr
|
||||
#include <unistd.h> //write
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
{
|
||||
int socket_desc , client_sock , c , read_size;
|
||||
struct sockaddr_in server , client;
|
||||
char client_message[2000];
|
||||
|
||||
//Create socket
|
||||
socket_desc = socket(AF_INET , SOCK_STREAM , 0);
|
||||
if (socket_desc == -1)
|
||||
{
|
||||
printf("Could not create socket");
|
||||
}
|
||||
puts("Socket created");
|
||||
|
||||
//Prepare the sockaddr_in structure
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_addr.s_addr = INADDR_ANY;
|
||||
server.sin_port = htons( 8889 );
|
||||
|
||||
//Bind
|
||||
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0)
|
||||
{
|
||||
//print the error message
|
||||
perror("bind failed. Error");
|
||||
return 1;
|
||||
}
|
||||
puts("bind done");
|
||||
|
||||
//Listen
|
||||
listen(socket_desc , 3);
|
||||
|
||||
//Accept and incoming connection
|
||||
puts("Waiting for incoming connections...");
|
||||
c = sizeof(struct sockaddr_in);
|
||||
|
||||
//accept connection from an incoming client
|
||||
client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
|
||||
if (client_sock < 0)
|
||||
{
|
||||
perror("accept failed");
|
||||
return 1;
|
||||
}
|
||||
puts("Connection accepted");
|
||||
|
||||
//Receive a message from client
|
||||
while( (read_size = recv(client_sock , client_message , 2000 , 0)) > 0 )
|
||||
{
|
||||
//Send the message back to client
|
||||
write(client_sock , client_message , strlen(client_message));
|
||||
}
|
||||
|
||||
if(read_size == 0)
|
||||
{
|
||||
puts("Client disconnected");
|
||||
fflush(stdout);
|
||||
}
|
||||
else if(read_size == -1)
|
||||
{
|
||||
perror("recv failed");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -14,7 +14,7 @@ int main(int argc, char * argv[])
|
||||
printf("usage: udp_client <addr> <port>\n");
|
||||
return 0;
|
||||
}
|
||||
int sock = -1, int port = atoi(argv[1]);
|
||||
int sock = -1, port = atoi(argv[1]);
|
||||
ssize_t n_sent;
|
||||
struct sockaddr_in server;
|
||||
char buf[64];
|
||||
@@ -36,7 +36,7 @@ int main(int argc, char * argv[])
|
||||
}
|
||||
|
||||
// TX
|
||||
char *msg = "Welcome to the Machine"
|
||||
char *msg = "Welcome to the Machine";
|
||||
int count = 0;
|
||||
|
||||
while(1) {
|
||||
|
||||
@@ -42,7 +42,7 @@ int main(int argc, char *argv[]) {
|
||||
printf("usage: udp_server <port>\n");
|
||||
exit(0);
|
||||
}
|
||||
int ld, length, int port = atoi(argv[1]);
|
||||
int ld, length, port = atoi(argv[1]);
|
||||
struct sockaddr_in skaddr;
|
||||
struct sockaddr_in skaddr2;
|
||||
|
||||
@@ -67,7 +67,7 @@ int main(int argc, char *argv[]) {
|
||||
exit(1);
|
||||
}
|
||||
// Display address:port to verify it was sent over RPC correctly
|
||||
int port = ntohs(skaddr2.sin_port);
|
||||
port = ntohs(skaddr2.sin_port);
|
||||
int ip = skaddr2.sin_addr.s_addr;
|
||||
unsigned char d[4];
|
||||
d[0] = ip & 0xFF;
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
/*
|
||||
C ECHO client example using sockets
|
||||
*/
|
||||
#include<stdio.h> //printf
|
||||
#include<string.h> //strlen
|
||||
#include<sys/socket.h> //socket
|
||||
#include<arpa/inet.h> //inet_addr
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
{
|
||||
int sock;
|
||||
struct sockaddr_in server;
|
||||
char message[1000] , server_reply[2000];
|
||||
|
||||
//Create socket
|
||||
sock = socket(AF_INET , SOCK_STREAM , 0);
|
||||
if (sock == -1)
|
||||
{
|
||||
printf("Could not create socket");
|
||||
}
|
||||
puts("Socket created");
|
||||
|
||||
server.sin_addr.s_addr = inet_addr("127.0.0.1");
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_port = htons( 8888 );
|
||||
|
||||
//Connect to remote server
|
||||
if (connect(sock , (struct sockaddr *)&server , sizeof(server)) < 0)
|
||||
{
|
||||
perror("connect failed. Error");
|
||||
return 1;
|
||||
}
|
||||
|
||||
puts("Connected\n");
|
||||
|
||||
//keep communicating with server
|
||||
while(1)
|
||||
{
|
||||
printf("Enter message : ");
|
||||
scanf("%s" , message);
|
||||
|
||||
//Send some data
|
||||
if(send(sock , message , strlen(message) , 0) < 0)
|
||||
{
|
||||
puts("Send failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Receive a reply from the server
|
||||
if(recv(sock , server_reply , 2000 , 0) < 0)
|
||||
{
|
||||
puts("recv failed");
|
||||
break;
|
||||
}
|
||||
|
||||
puts("Server reply :");
|
||||
puts(server_reply);
|
||||
}
|
||||
|
||||
close(sock);
|
||||
return 0;
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
C socket server example
|
||||
*/
|
||||
|
||||
#include<stdio.h>
|
||||
#include<string.h> //strlen
|
||||
#include<sys/socket.h>
|
||||
#include<arpa/inet.h> //inet_addr
|
||||
#include<unistd.h> //write
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
{
|
||||
int socket_desc , client_sock , c , read_size;
|
||||
struct sockaddr_in server , client;
|
||||
char client_message[2000];
|
||||
|
||||
//Create socket
|
||||
socket_desc = socket(AF_INET , SOCK_STREAM , 0);
|
||||
if (socket_desc == -1)
|
||||
{
|
||||
printf("Could not create socket");
|
||||
}
|
||||
puts("Socket created");
|
||||
|
||||
//Prepare the sockaddr_in structure
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_addr.s_addr = INADDR_ANY;
|
||||
server.sin_port = htons( 8888 );
|
||||
|
||||
//Bind
|
||||
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0)
|
||||
{
|
||||
//print the error message
|
||||
perror("bind failed. Error");
|
||||
return 1;
|
||||
}
|
||||
puts("bind done");
|
||||
|
||||
//Listen
|
||||
listen(socket_desc , 3);
|
||||
|
||||
//Accept and incoming connection
|
||||
puts("Waiting for incoming connections...");
|
||||
c = sizeof(struct sockaddr_in);
|
||||
|
||||
//accept connection from an incoming client
|
||||
client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
|
||||
if (client_sock < 0)
|
||||
{
|
||||
perror("accept failed");
|
||||
return 1;
|
||||
}
|
||||
puts("Connection accepted");
|
||||
|
||||
//Receive a message from client
|
||||
while( (read_size = recv(client_sock , client_message , 2000 , 0)) > 0 )
|
||||
{
|
||||
//Send the message back to client
|
||||
write(client_sock , client_message , strlen(client_message));
|
||||
}
|
||||
|
||||
if(read_size == 0)
|
||||
{
|
||||
puts("Client disconnected");
|
||||
fflush(stdout);
|
||||
}
|
||||
else if(read_size == -1)
|
||||
{
|
||||
perror("recv failed");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
/*
|
||||
C ECHO client example using sockets
|
||||
*/
|
||||
#include <stdio.h> //printf
|
||||
#include <string.h> //strlen
|
||||
#include <sys/socket.h> //socket
|
||||
#include <arpa/inet.h> //inet_addr
|
||||
|
||||
#include "../../sdk.h"
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
{
|
||||
int sock;
|
||||
struct sockaddr_in server;
|
||||
char message[1000] , server_reply[2000];
|
||||
|
||||
//Create socket
|
||||
sock = zt_socket(AF_INET , SOCK_STREAM , 0);
|
||||
if (sock == -1)
|
||||
{
|
||||
printf("Could not create socket");
|
||||
}
|
||||
puts("Socket created");
|
||||
|
||||
server.sin_addr.s_addr = inet_addr("127.0.0.1");
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_port = htons( 8888 );
|
||||
|
||||
//Connect to remote server
|
||||
if (zt_connect(sock , (struct sockaddr *)&server , sizeof(server)) < 0)
|
||||
{
|
||||
perror("connect failed. Error");
|
||||
return 1;
|
||||
}
|
||||
|
||||
puts("Connected\n");
|
||||
|
||||
//keep communicating with server
|
||||
while(1)
|
||||
{
|
||||
printf("Enter message : ");
|
||||
scanf("%s" , message);
|
||||
|
||||
//Send some data
|
||||
if(zt_send(sock , message , strlen(message) , 0) < 0)
|
||||
{
|
||||
puts("Send failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Receive a reply from the server
|
||||
if(zt_recv(sock , server_reply , 2000 , 0) < 0)
|
||||
{
|
||||
puts("recv failed");
|
||||
break;
|
||||
}
|
||||
|
||||
puts("Server reply :");
|
||||
puts(server_reply);
|
||||
}
|
||||
|
||||
close(sock);
|
||||
return 0;
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
/*
|
||||
C socket server example
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h> //strlen
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h> //inet_addr
|
||||
#include <unistd.h> //write
|
||||
|
||||
#include "../../sdk.h"
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
{
|
||||
int socket_desc , client_sock , c , read_size;
|
||||
struct sockaddr_in server , client;
|
||||
char client_message[2000];
|
||||
|
||||
//Create socket
|
||||
socket_desc = zt_socket(AF_INET , SOCK_STREAM , 0);
|
||||
if (socket_desc == -1)
|
||||
{
|
||||
printf("Could not create socket");
|
||||
}
|
||||
puts("Socket created");
|
||||
|
||||
//Prepare the sockaddr_in structure
|
||||
server.sin_family = AF_INET;
|
||||
server.sin_addr.s_addr = INADDR_ANY;
|
||||
server.sin_port = htons( 8888 );
|
||||
|
||||
//Bind
|
||||
if( zt_bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0)
|
||||
{
|
||||
//print the error message
|
||||
perror("bind failed. Error");
|
||||
return 1;
|
||||
}
|
||||
puts("bind done");
|
||||
|
||||
//Listen
|
||||
zt_listen(socket_desc , 3);
|
||||
|
||||
//Accept and incoming connection
|
||||
puts("Waiting for incoming connections...");
|
||||
c = sizeof(struct sockaddr_in);
|
||||
|
||||
//accept connection from an incoming client
|
||||
client_sock = zt_accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
|
||||
if (client_sock < 0)
|
||||
{
|
||||
perror("accept failed");
|
||||
return 1;
|
||||
}
|
||||
puts("Connection accepted");
|
||||
|
||||
//Receive a message from client
|
||||
while( (read_size = zt_recv(client_sock , client_message , 2000 , 0)) > 0 )
|
||||
{
|
||||
//Send the message back to client
|
||||
zt_write(client_sock , client_message , strlen(client_message));
|
||||
}
|
||||
|
||||
if(read_size == 0)
|
||||
{
|
||||
puts("Client disconnected");
|
||||
fflush(stdout);
|
||||
}
|
||||
else if(read_size == -1)
|
||||
{
|
||||
perror("recv failed");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user