diff --git a/tests/SimpleNetworkTest.cpp b/tests/SimpleNetworkTest.cpp index 343ce9cc220a30647ac000e55eb05e119e8faa0e..5739e4bbe67d5a78f358adaa803539e673069806 100644 --- a/tests/SimpleNetworkTest.cpp +++ b/tests/SimpleNetworkTest.cpp @@ -1,23 +1,24 @@ +#include <arpa/inet.h> +#include <atomic> +#include <condition_variable> #include <cstdlib> +#include <fstream> #include <iostream> +#include <linux/sockios.h> #include <list> -#include <string> -#include <atomic> #include <mutex> -#include <condition_variable> -#include <thread> -#include <unistd.h> -#include <fstream> #include <netdb.h> +#include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <string> #include <sys/socket.h> #include <sys/types.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <linux/sockios.h> +#include <thread> +#include <unistd.h> +#include "AsyncLibrary.hpp" #include "BinaryPrivateSemaphore.hpp" #include "Common.hpp" #include "CountingPrivateSemaphore.hpp" @@ -25,92 +26,82 @@ #include "PrivateSemaphore.hpp" #include "Runtime.hpp" #include "emper.hpp" -#include "AsyncLibrary.hpp" using namespace io; #define MAX 1024 -void func() -{ - // auto r = Runtime::getRuntime(); - int sockfd; - struct sockaddr_in servaddr; - - // socket create and varification - sockfd = socket(AF_INET, SOCK_STREAM, 0); - if (sockfd == -1) { - printf("socket creation failed...\n"); - exit(0); - } - bzero(&servaddr, sizeof(servaddr)); - - // assign IP, PORT - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); - servaddr.sin_port = htons(4242); - - /*// connect the client socket to server socket - if (async_connect(sockfd, (sockaddr*)&servaddr, sizeof(servaddr)) != 0) { - printf("connection with the server failed with code %d...\n", errno); - exit(EXIT_FAILURE); - }*/ - - int reuseaddr=1; - if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&reuseaddr,sizeof(reuseaddr))==-1) - { - die("%s",strerror(errno)); - } - if (bind(sockfd, (sockaddr*) &servaddr , sizeof(servaddr))==-1) - { - die("%s",strerror(errno)); - } - if (listen(sockfd, 1) != 0) - perror("listen"); - auto client_fd = async_accept(sockfd, (sockaddr*)&servaddr, sizeof(servaddr)); - if (client_fd < 0) { - printf("accept failed with code %d...\n", errno); - exit(EXIT_FAILURE); - } - // For testing purposes - sockfd = client_fd; - - - - - - char read_buff[MAX]; - char write_buff[MAX]; - for (;;) { - int read = async_recv(sockfd, (unsigned char*) read_buff, sizeof(read_buff)); - //int read = async_read(sockfd, (unsigned char*) read_buff, 10, false); - if (read == -1) - { - perror("wait_read"); - break; - } - read_buff[read] = '\0'; - snprintf(write_buff, MAX, "%s", read_buff); - int write = async_send(sockfd, (unsigned char*) write_buff, strlen(write_buff)); - if (write == -1) - { - perror("wait_write"); - break; - } - if ((strncmp(read_buff, "exit", 4)) == 0) { - break; - } - } - exit(EXIT_SUCCESS); +void func() { + // auto r = Runtime::getRuntime(); + int sockfd; + struct sockaddr_in servaddr; + + // socket create and varification + sockfd = socket(AF_INET, SOCK_STREAM, 0); + if (sockfd == -1) { + printf("socket creation failed...\n"); + exit(0); + } + bzero(&servaddr, sizeof(servaddr)); + + // assign IP, PORT + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); + servaddr.sin_port = htons(4242); + + /*// connect the client socket to server socket + if (async_connect(sockfd, (sockaddr*)&servaddr, sizeof(servaddr)) != 0) { + printf("connection with the server failed with code %d...\n", errno); + exit(EXIT_FAILURE); + }*/ + + int reuseaddr = 1; + if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)) == -1) { + die("%s", strerror(errno)); + } + if (bind(sockfd, (sockaddr *)&servaddr, sizeof(servaddr)) == -1) { + die("%s", strerror(errno)); + } + if (listen(sockfd, 1) != 0) + perror("listen"); + auto client_fd = async_accept(sockfd, (sockaddr *)&servaddr, sizeof(servaddr)); + if (client_fd < 0) { + printf("accept failed with code %d...\n", errno); + exit(EXIT_FAILURE); + } + // For testing purposes + sockfd = client_fd; + + char read_buff[MAX]; + char write_buff[MAX]; + for (;;) { + int read = async_recv(sockfd, (unsigned char *)read_buff, sizeof(read_buff)); + // int read = async_read(sockfd, (unsigned char*) read_buff, 10, false); + if (read == -1) { + perror("wait_read"); + break; + } + read_buff[read] = '\0'; + snprintf(write_buff, MAX, "%s", read_buff); + int write = async_send(sockfd, (unsigned char *)write_buff, strlen(write_buff)); + if (write == -1) { + perror("wait_write"); + break; + } + if ((strncmp(read_buff, "exit", 4)) == 0) { + break; + } + } + exit(EXIT_SUCCESS); } -int main(UNUSED_ARG int argc, UNUSED_ARG char* argv[]) { - Runtime runtime(1); +int main(UNUSED_ARG int argc, UNUSED_ARG char *argv[]) { + Runtime runtime(1); - Fiber* fibFiber = Fiber::from([=]{func();}); + Fiber *fibFiber = Fiber::from([=] { func(); }); - runtime.schedule(*fibFiber); + runtime.schedule(*fibFiber); - runtime.waitUntilFinished(); + runtime.waitUntilFinished(); - return 0; + return 0; }