Na zajeciach z programowania wspolbierznego zadali mi 2 programy... klient-serwer.
Nie wiem dlaczego ale wieszaja sie one w tym samym miejscu... moze wkleje listing z serwera:
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <wait.h>
#include <string.h>
#include <ctype.h>
#include <fcntl.h>
#include <sys/stat.h>
#define FIFO_NAME "kolejka_read"
#define FIFO_NAME2 "kolejka_write"
int main(int argc, char *argv[])
{
char bufor[256]; // bufor pamietajacy wpisane znaki
int i, fifo_read, fifo_write, znalazlem, status;
printf("dupa");
mknod(FIFO_NAME, S_IFIFO | 0666, 0); //tworzenie plikow fifo przez serwer z odpowiednimi prawami dostepu
mknod(FIFO_NAME2, S_IFIFO | 0666, 0);
fifo_read = open( FIFO_NAME, O_RDONLY ); // otwarcie pliku kolejki na rzecz czytania danych klienta
fifo_write = open( FIFO_NAME2, O_WRONLY ); // otwarcie pliku kolejki do zapisywania
printf( "Oczekiwanie na dane od klienta\n" );
do
{
if( (status = read(fifo_read, bufor, 256)) == -1 )
perror( "read error" );
else
{
printf( "Odczytano %d bajtow od klienta tresci:\n %s \n Przytapiono do wprowadzania zmian\n", status, bufor );
bufor[status] = '\0';
for( i=0; i<256; i++ )
if( islower(bufor[i]) )
bufor[i] = toupper( bufor[i] );
if ( isupper(bufor[i]) )
bufor[i] = tolower( bufor[i] );
if ( (status = write(fifo_write, bufor, strlen(bufor))) == -1 ) // zapis zmienionych danych
perror("write error");
}
} while( status );
}
Kod: Zaznacz cały
fifo_read = open( FIFO_NAME, O_RDONLY ); // otwarcie pliku kolejki na rzecz czytania danych klienta