Этап 7: трансляция и компоновка серверной программы
Выходные файлы, выработанные программой rpcgen, включают основную часть кода, необходимую для сервера, но программист должен подготовить два дополнительных файла: интерфейсные процедуры сервера (которые решено поместить в файл rdict_sif .с) и сами удаленные процедуры. В рассматриваемом примере программы работы со словарем окончательная версия удаленных процедур включена в файл rdict_srp.c. В качестве кода этих процедур взят код, который содержался в первоначальном приложении:
/* Файл rdict_srp.c - процедуры initw, insertw, deletew, lookupw */ include include include "rdict.h" /* Серверные удаленные процедуры и используемые в них глобальные данные */ char dict[DICTSIZ][MAXWORD+l]; /* Распределение памяти для слов словаря */ int nwords =0; /* Число слов в словаре */
Вначале выполняется трансляция файла, содержащего удаленные процедуры, с использованием команды:
сс -с rdict_srp.c
Затем для создания выполняемого файла осуществляется компоновка файлов объектного кода, входящих в состав сервера, с помощью следующей команды: сс -о rdictd rdict_svc.o rdictjcdr.o rdict_sif.o rdict_srp.o В системе Linux, как и в большинстве версий UNIX, принято присваивать серверам имена с суффиксом "d" (сокращение от daemon — демон); термин демон применяется ко всем программам, работающим в фоновом режиме. После выполнения этой команды создается файл rdictd7 с выполняемым кодом. хостинг поддержка
Этап 8: Запуск серверной программы и вызов клиентской программы на выполнение
Первое серьезное испытание всей системы происходит после запуска на выполнение и клиентского, и серверного компонентов на одном компьютере. Функционирование сервера должно начаться еще до того, как к нему попытается подключиться клиент, поскольку в противном случае клиент выведет сообщение о том, что не может связаться с удаленной программой, и остановится:
Could not contact remote program.
В системе Linux предусмотрена возможность запустить сервер на выполнение и освободить терминал пользователя для ввода других команд, указав в конце командной строки символ амперсанда:
./rdictd &
Кроме того, пользователь может вызвать клиентскую программу для работы в интерактивном режиме, введя имя этой программы, а затем набрав входные данные. Иным образом, входные данные при вызове клиентской программы могут быть перенаправлены из файла.