Добавил:
Mendeleev
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
(* лМЙЕОФУЛЙК РТПГЕУУ *)
uses sockets,stdio,linux;
const
SIZE=sizeof(tinetsockaddr);
(* мПЛБМШОЩК РПТФ ОБ ЛМЙЕОФЕ *)
client:tinetsockaddr = (family:AF_INET; port:INADDR_ANY; addr:INADDR_ANY);
(* бДТЕУ ХДБМЕООПЗП УЕТЧЕТБ *)
server:tinetsockaddr = (family:AF_INET; port:7000);
var
sockfd:longint;
c:char;
begin
(* рТЕПВТБЪПЧБФШ Й ЪБРЙУБФШ IP БДТЕУ *)
server.addr := inet_addr ('127.0.0.1');
(* хУФБОПЧЙФШ БВПОЕОФУЛХА ФПЮЛХ УПЛЕФБ *)
sockfd := socket (AF_INET, SOCK_DGRAM, 0);
if sockfd = -1 then
begin
perror ('пЫЙВЛБ ЧЩЪПЧБ socket');
halt (1);
end;
(* уЧСЪБФШ МПЛБМШОЩК БДТЕУ У БВПОЕОФУЛПК ФПЮЛПК УПЛЕФБ. *)
if not bind (sockfd, client, SIZE) then
begin
perror ('пЫЙВЛБ ЧЩЪПЧБ bind');
halt (1);
end;
(* уЮЙФБФШ УЙНЧПМ У ЛМБЧЙБФХТЩ *)
while fdread (0, c, 1) <> 0 do
begin
(* рЕТЕДБФШ УЙНЧПМ УЕТЧЕТХ *)
if sendto (sockfd, c, 1, 0, tsockaddr(server), SIZE) = -1 then
begin
perror ('лМЙЕОФ: ПЫЙВЛБ РЕТЕДБЮЙ');
continue;
end;
(* рТЙОСФШ ЧЕТОХЧЫЕЕУС УППВЭЕОЙЕ *)
if recv (sockfd, c, 1, 0) = -1 then
begin
perror ('лМЙЕОФ: ПЫЙВЛБ РТЙЕНБ');
continue;
end;
fdwrite (1, c, 1);
end;
end.
uses sockets,stdio,linux;
const
SIZE=sizeof(tinetsockaddr);
(* мПЛБМШОЩК РПТФ ОБ ЛМЙЕОФЕ *)
client:tinetsockaddr = (family:AF_INET; port:INADDR_ANY; addr:INADDR_ANY);
(* бДТЕУ ХДБМЕООПЗП УЕТЧЕТБ *)
server:tinetsockaddr = (family:AF_INET; port:7000);
var
sockfd:longint;
c:char;
begin
(* рТЕПВТБЪПЧБФШ Й ЪБРЙУБФШ IP БДТЕУ *)
server.addr := inet_addr ('127.0.0.1');
(* хУФБОПЧЙФШ БВПОЕОФУЛХА ФПЮЛХ УПЛЕФБ *)
sockfd := socket (AF_INET, SOCK_DGRAM, 0);
if sockfd = -1 then
begin
perror ('пЫЙВЛБ ЧЩЪПЧБ socket');
halt (1);
end;
(* уЧСЪБФШ МПЛБМШОЩК БДТЕУ У БВПОЕОФУЛПК ФПЮЛПК УПЛЕФБ. *)
if not bind (sockfd, client, SIZE) then
begin
perror ('пЫЙВЛБ ЧЩЪПЧБ bind');
halt (1);
end;
(* уЮЙФБФШ УЙНЧПМ У ЛМБЧЙБФХТЩ *)
while fdread (0, c, 1) <> 0 do
begin
(* рЕТЕДБФШ УЙНЧПМ УЕТЧЕТХ *)
if sendto (sockfd, c, 1, 0, tsockaddr(server), SIZE) = -1 then
begin
perror ('лМЙЕОФ: ПЫЙВЛБ РЕТЕДБЮЙ');
continue;
end;
(* рТЙОСФШ ЧЕТОХЧЫЕЕУС УППВЭЕОЙЕ *)
if recv (sockfd, c, 1, 0) = -1 then
begin
perror ('лМЙЕОФ: ПЫЙВЛБ РТЙЕНБ');
continue;
end;
fdwrite (1, c, 1);
end;
end.
Соседние файлы в папке 10