Это работает просто отлично. Не нужно писать кольцевое промежуточное изделие.
(:require [clojure.java.io :as io])
(defroutes app-routes
(GET "/" [] (io/resource "public/index.html")))
Я не вижу, где вы инициализируете clientaddrlen
. Это параметр входа / выхода. Вы должны указать accept ()
размер буфера для адреса.
Добавление объявления неиспользуемой переменной при нормальных обстоятельствах не должно вызывать сбой принятия. Выбор не нарушен .
Опубликованный вами код не может работать так, как вы описываете; вы не проверяете возвращаемое значение accept (), поэтому как узнать, что это не удается? Помните, что вызовы Unix system / libc обычно не устанавливают errno , если только не возникает ошибка, поэтому, если accept () не вернет -1, errno может содержать что угодно .
Тем не менее; если вы убедились, что accept () не работает, а для errno задано значение EINVAL, есть две возможности в соответствии со страницей руководства:
РЕДАКТИРОВАТЬ: самое главное: опубликуйте полный пример , который компилирует и демонстрирует вашу проблему. В противном случае мы можем только догадываться, в чем проблема.