У меня большие проблемы, потому что я не знаю, как это сделать.
Мне нужно создать только 2 процесса, которые могут взаимодействовать.
Это код:
/* Wrappers */
this->sock_fd = this->w_socket();
this->w_bind();
this->w_listen();
std::cout << "[info] Server is running..." << std::endl;
while(1)
{
/*Connection stuff */
struct sockaddr_in client_addr;
int client_fd = this->w_accept(&client_addr);
char client_ip[64];
int client_port = ntohs(client_addr.sin_port);
inet_ntop(AF_INET, &client_addr.sin_addr, client_ip, sizeof(client_ip));
std::cout << "[info] Connection from (" << client_ip
<< ", " << client_port << ")" << std::endl;
/*Login manager*/
...
/* Crate PID */
int pid = fork();
if (pid == 0)
{
close(this->sock_fd);
this->manage(client_fd, client_ip, client_port);
exit(0);
}
/* End connection */
close(client_fd);
}
Хорошо. Когда клиент успешно аутентифицирован после входа в систему, администратор может отправлять данные на сервер.
Если клиент подключен, а другой вошел в систему, второй должен пнуть первого клиента с сообщением «Вы были отключены».
Как я могу использовать вилку и трубу, чтобы сделать это?
Я пытался прочитать что-то об этом, но я немного запутался в этом.
Спасибо.