![]() |
![]() |
![]() |
![]() |
![]() |
|
At this point, a call to fscanf can read in data
that have been supplied by the client, and a call to fprintf can
write out processed data that is to be supplied to the client.
Suppose, for example, that you want to set up a server program that computes the number of years it takes to double money at an interest rate supplied by a client program.
Presuming that the function on the server that actually computes the
doubling time is the doubling_time function shown in
Segment 117, the following while loop does the job:
while (1) {
double input;
fscanf (fm_client, "%lf", &input);
fprintf (to_client, "%f\n", doubling_time(input));
fflush (to_client);
}
Note that the input variable is declared inside the while
loop; this declaration is legitimate because any block can introduce local
variables. Note also the call to fflush; this call is needed to
ensure that the information supplied in the call to fprintf is
passed along, and is not left stranded in a buffer.