The UNIX and Linux Forums  

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > 高レベルのプログラミング
Googleのunix.com


高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
クライアントとサーバーのプログラム JCR 高レベルのプログラミング 8 2009年4月28日 05:06午後
クライアント/サーバーの問題 geauxtn AIX 5 2007年7月30日 09:38午前
クライアント/サーバ UNIXのダミー質問と回答のため 2 2006年10月30日 02:19午前
NTPサーバーとNTPクライアント bubba112557 Sun Solaris 1 2005年5月10日 11:37午前
パイプや名前付きパイプ( FIFOの)バッファサイズ 出生地 ファイルシステムは、ディスクとメモリ 1 2004年8月20日 11:14午前

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2008年8月23日
tolkki tolkki is offline
登録ユーザー
  
 

参加日: 2008年3月
投稿数: 7
クライアント/サーバのパイプ

ここでは概念です:

クライアントは、標準入力からのパス名を読み取り、サーバーpipe1.Theへの書き込みはpipe1このパス名を読み取り、 reading.Ifは、サーバー用のファイルを開くことができますにファイルをオープンしようとすると、サーバはファイルを読み、それを書くことによって応答pipe2に、それ以外のサーバーは、同じpipe.Theクライアントにして、エラーメッセージを書き込むpipe2から読み取り、それを受信するには標準出力に書き込ま

ここに私のコードです:

コード:
#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);
    }

}
実際、私はその理由を私はまだ2睡眠のコマンドを入れるのレースの条件をいくつかの問題かもしれないが理解できないのは..
一般的に私は読んで、クライアントとサーバーのコマンドを書く方法を知らないけど... sychronizeしたい
誰かのコードを見て、私にアドバイスをする時は、事前に本当に感謝..... ..よろしくお願いいたします
 

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 03:25午前


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
UNIXおよびLinuxのフォーラムコンテンツの著作権© 1993-2009。版権所有。

コンテンツ関連のURLで vBSEO 3.2.0