The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Hoog Niveau Programmering
.
google unix.com



Hoog Niveau Programmering Post vragen over C, C + +, Java, SQL, en andere programmeertalen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
client en server programma's JCR Hoog Niveau Programmering 8 04-28-2009 05:06 PM
Client / Server Issue geauxtn AIX 5 07-30-2007 09:38
client / server boomstam UNIX voor Dummies Questions & Answers 2 10-30-2006 02:19
NTP-server en client ntp bubba112557 SUN Solaris 1 05-10-2005 11:37
Pijpen en named pipes (FIFO) Buffer grootte Jus Bestandssystemen, schijven en geheugen 1 08-20-2004 11:14

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 08-23-2008
tolkki tolkki is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posten: 7
client / server-buizen

hier is het concept:

de cliënt leest een padnaam van de standaard invoer en schrijft het naar pipe1.The server leest deze padnaam van de pipe1 en probeert om het bestand te openen voor reading.If de server kan het bestand openen, de server reageert door het lezen van het bestand en het schriftelijke te pipe2; anders de server schrijft een foutmelding aan dezelfde pipe.The cliënt leest uit de pipe2 en schrijft zij ontvangt naar de standaard output

hier is mijn code:

Code:
#include <stdio.h>
#include <string.h>
#define maxsize 1000

char buffer [maxsize];

void client(int readfd,int writefd)
{
   puts("give pathname:");
   gets(buffer);

   write(writefd,buffer,strlen(buffer));
   //sleep(10);
   while((read(readfd,buffer,strlen(buffer)))>0);
     printf("%s/n",buffer);

}

void server(int readfd,int writefd)
{
   FILE * fp;
   char line[100];
   //sleep(10);
   read(readfd,buffer,strlen(buffer));
   fp=fopen(buffer,"r");
   if(fp==NULL)
   {
       strcpy(buffer,"cannot oepn file");
       write(writefd,buffer,strlen(buffer));
   }
   else
     while(fgets(line,100,fp)!=NULL)
       write(writefd,line,100);
}

int main()
{
    int pipe1[2],pipe2[2];
    int childpid;
    int status;
    pipe(pipe1);
    pipe(pipe2);
    childpid=fork();
    if(childpid>0)
    {
        close(pipe1[0]);
        close(pipe2[1]);
        client(pipe2[0],pipe1[1]);
        wait(&status);
        exit(0);
    }
    else
    {
        close(pipe1[1]);
        close(pipe2[0]);
        server(pipe1[0],pipe2[1]);
        exit(0);
    }

}
Eigenlijk begrijp ik dat er misschien een aantal problemen met "race conditions" dat is de reden waarom ik slaap 2 commando's, maar nog steeds niet werkt ..
het algemeen wil ik sychronize het lezen en schrijven van commando's van de client en server, maar ik weet niet hoe ...
als iemand heeft de tijd om de code in en geef me wat advies, het zal echt worden gewaardeerd ..... Thanks in advance ..
 

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 07:29 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0