Автор | Сообщение |
kreol
87 сообщений |
#5297 2011-12-10 21:14 GMT+3 часа(ов) |
код для сервера
для клиента (require racket/tcp) Сервер выдает одну строку клиент читает ну и выводит 1) Не могу понять как в моем коде, к примеру вывести от сервера к клиенту то, что прислал клиент. В моем представлении надо в последней функции сервера поставить (display (read in) out) а в клиенте (display "что-то" out) Но так клиент виснет. 2) так же в интерпретаторе сервера не могу выполнять код. Понятно что это из-за "цикла" но как обойти не знаю. читал манул по серверу на рэкете там используется tread но я не могу с этим разобраться ни как работает ни куда надо помещать. прошу помощи... |
|
megamanx
307 сообщений |
#5298 2011-12-10 22:08 GMT+3 часа(ов) |
Открыл порт 5000 (не 5, как у тебя). В браузере открыл http://localhost:8080, получил hello. Я вот под виндозой, как можно одновременно запустить и клиента и сервер на одном интерпретаторе?
|
|
I wish I'd made you angry earlier
|
|
kreol
87 сообщений |
#5299 2011-12-10 22:22 GMT+3 часа(ов) |
Открыл порт 5000 (не 5, как у тебя). В браузере открыл http://localhost:8080, получил hello это да. Это работает))
megamanx Я тоже там пока). в меню есть возможность открыть в новой вкладке. |
|
misha![]()
1275 сообщений |
#5300 2011-12-11 00:57 GMT+3 часа(ов) |
1) flush-output
2) потренируйся чуток (все очень просто) |
|
kreol
87 сообщений |
#5303 2011-12-11 06:58 GMT+3 часа(ов) |
misha, прочитал про flush-output но что-то не понял, к чему это и как пользоваться...
после 4 часов проб и ошибок немного понял как работать с потоками... |
|
kreol
87 сообщений |
#5304 2011-12-11 07:16 GMT+3 часа(ов) |
Хотя не совсем понятно.
Вот к примеру код вызываю (main) потом чтобы остановить поток (kill-thread thr) Вопрос, как мне остановить поток когда a будет равен 0 ? пробовал таким способом но ничего не помогло. и еще вопрос как избавится в этом коде от (set! ...) ? |
|
Kergan
300 сообщений |
#5305 2011-12-11 08:50 GMT+3 часа(ов) |
misha![]()
1275 сообщений |
#5306 2011-12-11 14:14 GMT+3 часа(ов) |
kreolДанные в потоке буферизируются (исключение составляет разве что вывод на терминал), иначе говоря, отсылаются по частям. Поэтому после передачи данных необходимо вызвать операцию очистки (всех) буферов, чтобы отправить получателю оставшиеся байты. Убейте вашего препода ![]() kreolА он и так остановится. Поток выполняется до тех пор пока выполняется функция. Советую почитать про потоки и кустодианы. kreoldo, let loop и т.п. |
|
Kergan
300 сообщений |
#5307 2011-12-11 18:47 GMT+3 часа(ов) |
> do, let loop и т.п.
Лучше for. |
|
misha![]()
1275 сообщений |
#5308 2011-12-11 18:57 GMT+3 часа(ов) |
>Лучше for.
А еще лучше sleep ![]() |
|
kreol
87 сообщений |
#5309 2011-12-11 19:45 GMT+3 часа(ов) |
Цитата Ясно. Препода нету) Цитата ага. я уже убедился в этом... Kerganспасибо за ссылку |
|