Додаток 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) // в цикле
{