Вивчення основних команд операційної системи Linux. Вивчення файлової системи процесів /proc. Вивчення роботи «демонів». Програма «клієнт-сервер»
25

Додаток 3

Лістинг програми “l4.c

#include <netinet/in.h>

#include <sys/socket.h>

#include <stdio.h>

#include <string.h>

#include <unistd.h>

#include <stdlib.h>

#include <time.h>

 

int main()

{

    int server, client;    // дескрипторы сокет.

    int bytes;

    struct sockaddr_in server_in;

    char buffer[1000], ch;

    pid_t child_pid;

    FILE *stream;

 

    child_pid = fork();

    if (child_pid != 0)

          return 0;

    if (child_pid == 0)

         setsid();

    // создаем сокет

    if ((server = socket(AF_INET, SOCK_STREAM, 0)) < 0)

    {

          perror("socket");

          exit(1);

    }

    server_in.sin_family = AF_INET;  // пространство имен

    server_in.sin_port = htons(12345);  // порт

    server_in.sin_addr.s_addr = INADDR_ANY;  // адресса

    // назначение серверному сокету адреса привязки

    if (bind (server, (struct sockaddr *) &server_in, sizeof(server_in)) < 0)

    {

          perror("bind");

          exit(2);

    }

    // переводит сокета в режим ожидания запросов на подключение

    if (listen(server, 1) < 0)

    {

          perror("listen");

          exit(3);

    }

 

    while (1)  // в цикле

    {