Я верю, что это возможно. У BigRock должен быть менеджер домена, куда вы можете добавить свой домен pythonanywhere.
Завершение работы со стороны чтения сокета приведет к тому, что любые заблокированные вызовы recv
(или аналогичные) будут возвращать 0
(что указывает на постепенное завершение работы). Я не знаю, что произойдет с данными, которые в настоящее время передаются по стеку IP. Он наверняка проигнорирует данные, поступающие с другой стороны. Это никак не повлияет на запись в этот сокет.
Фактически, разумное использование shutdown
- хороший способ гарантировать, что вы очистите, как только вы закончите. HTTP-клиент, который не использует keepalive, может выключить сторону записи, как только он завершит отправку запроса, а сервер, который видит Connection: closed
, может аналогичным образом выключить сторону чтения, как только он завершено получение запроса. Это сделает любые дальнейшие ошибочные действия очевидными,
Глядя на исходный код Linux, shutdown (sock, SHUT_RD)
, похоже, не вызвать любые изменения состояния сокета. (Очевидно, что shutdown (sock, SHUT_WR)
приводит к установке FIN
.)
Я не могу комментировать изменения размера окна (или его отсутствие). Но вы можете написать тестовую программу, чтобы увидеть. Просто включите в inetd
службу chargen
и подключитесь к ней. : -)
shutdown (sock, SHUT_RD) заставляет любую запись в сокет получать сигнал sigpipe.
Любое дальнейшее чтение с использованием системного вызова read вернет -1 и установит errno в EINVAL.
Использование recv вернет -1 и установит errno для указания ошибки (возможно, ENOTCONN или ENOTSOCK).