0
私はソケットクライアント/サーバプログラムを書いています。クライアントはJavaにあり、Cでサーバーされています。 私はサーバーからファイルを読み込みたいと思います。クライアントの フラグメント:ソケットをループで読み取る
while(!(answer = input.readLine()).equals("end")) {
System.out.println(answer);
}
サーバー:
char* line;
size_t len = 0;
ssize_t read;
FILE* out;
while((read = getline(&line, &len, out))!=-1){
write(fd, line, read);
}
write(fd, "end", 3);
は、私は、ファイルからの出力皆ラインに乗るが、それはループから出て行くことはありません。
私は何をしたいですか?
クライアントがサーバの読み取りラインを細かいところから接続すると、それをクライアントに書き込んでください。クライアントはファイルに新しい行を追加できます(他のクライアントが読むでしょう)
どうすれば修正できますか?
しかし、私はストリームを終了しません。私はファイルからデータを読んで何かをしたいです – heheszki
私はwrite(fd、 "end"、3)でチェックしようとしていました。しかし、それは動作しません。サーバーループでは終わりですがクライアントでは私は "終わり"を読むことはできません – heheszki
ファイルからデータを読み込み、ストリームの終わりにこれをやり直したいと思います。クライアントでは「終了」を読むことができません。なぜなら、私があなたに与えた理由のために、ファイル読込みループから抜け出ることはないからです。後に何か他のことをすることを止めるものは何もありません。 – EJP