The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > High-Level-Programmierung
.
Google unix.com



High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Client-und Server-Programme JCR High-Level-Programmierung 8 04-28-2009 05:06 PM
Client / Server-Ausgabe geauxtn AIX 5 07-30-2007 09:38 AM
Client / Server Bole UNIX for Dummies Questions & Answers 2 10-30-2006 02:19 AM
NTP-Server und NTP-Client bubba112557 SUN Solaris 1 05-10-2005 11:37 AM
PIPEs und Named Pipes (FIFO) Puffergröße Jus Dateisysteme, Festplatten und Memory 1 08-20-2004 11:14 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 08-23-2008
tolkki tolkki is offline
Registrierte Nutzer
  
 

Join Date: März 2008
Beiträge: 7
Client / Server-Rohre

hier ist das Konzept:

Der Client liest einen Pfadnamen aus der Standardeingabe und schreibt sie in pipe1.The-Server liest diese Pfadnamen aus der pipe1 und versucht, die Datei zu öffnen für reading.If kann der Server die Datei öffnen, der Server antwortet, indem Sie die Datei und schreiben sie zu pipe2, sonst schreibt der Server eine Fehlermeldung an den gleichen pipe.The Client liest aus dem pipe2 und schreibt sie auf die Standard-Ausgabe

hier ist mein 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);
    }

}

Tatsächlich, ich verstehe, dass es einige Probleme mit den Bedingungen, die Rasse ist der Grund, warum ich 2 Schlafplätze Befehle, aber immer noch nicht funktioniert ..
generell möchte ich sychronize die Lese-und Schreib-Befehle der Client-und Server, aber ich weiß nicht, wie ...
wenn jemand hat die Zeit, um zu sehen, den Code ein und geben Sie mir einige Ratschläge, wird es wirklich zu schätzen ..... thanks in advance ..
 

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 11:33 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0