У меня есть простой эхо-сервер и клиент, измененный, чтобы просто отправить некоторый текст на сервер. Если я использую
./client.o port < file.in
работает и отправляет содержимое файла на сервер, но если я попытаюсь
./server.o port > file.out
при запуске сервера он ничего не будет делать, ни печатая в терминал, ни в файл. Я хочу иметь возможность записать полученный текст в файл, если он указан при запуске процесса сервера. Вот цикл приема от кода сервера:
for(;;) {
int done, n;
printf("Waiting for a connection...\n");
t = sizeof(remote);
if ((s2 = accept(s, (struct sockaddr *) &remote, (socklen_t *) &t)) == -1) {
perror("accept");
exit(1);
}
printf("Connected.\n");
done = 0;
do {
n = recv(s2, str, 100, 0);
if (n <= 0) {
if (n < 0) perror("recv");
done = 1;
}
if (!done)
printf("%s\n", str);
} while (!done);
Что мне делать?