#include #include #include #include #include #include #include using namespace std; const string REQUEST{"DieServerRequest"}; const string ANSWER{"DieServerAnswer"}; int main() { int sides; srand(time(nullptr)); if (mkfifo(REQUEST.c_str(), S_IRUSR| S_IWUSR|S_IRGRP|S_IROTH) == -1) { perror("mkfifo failed Request"); exit(-1); } if (mkfifo(ANSWER.c_str(), S_IWUSR| S_IRUSR|S_IRGRP|S_IROTH) == -1) { perror("mkfifo failed Anser"); unlink(REQUEST.c_str()); exit(-1); } int request, answer; request = open("DieServerRequest", O_RDONLY); if (request < 0) { perror("open Request"); } answer = open("DieServerAnswer", O_WRONLY); if (answer < 0) { perror("open Answer"); } ssize_t size = read(request, &sides, sizeof(int)); while (sides >= 0) { if (size > 0) { cout << "got " << sides << " sides, " << size << " size." << endl; int result{0}; if (sides > 0) { result = rand() % sides + 1; } write(answer, &result, sizeof(int)); } size = read(request, &sides, sizeof(int)); } if ( 0 != unlink(REQUEST.c_str())) { perror("Unlink request"); } if (0 != unlink(ANSWER.c_str())) { perror("Unlink answer"); } return 0; }