TCP и сокеты POSIX принимают () семантику

serialVersionUID наличие поля не обеспечивается интерфейсом Serializable, так как интерфейс не может обеспечить наличие поля. Вы можете объявить класс, который реализует Serializable, он будет прекрасно компилироваться без наличия поля serialVersionUID.

Проверка поля serialVersionUID жестко закодирована в инструментах. Одним из примеров являются методы JDK java.io.ObjectStreamClass.getSerialVersionUID() , которые загружают значение serialVersionUID с отражением:

/**
 * Returns explicit serial version UID value declared by given class, or
 * null if none.
 */
private static Long getDeclaredSUID(Class cl) {
    try {
        Field f = cl.getDeclaredField("serialVersionUID");
        int mask = Modifier.STATIC | Modifier.FINAL;
        if ((f.getModifiers() & mask) == mask) {
            f.setAccessible(true);
            return Long.valueOf(f.getLong(null));
        }
    } catch (Exception ex) {
    }
    return null;
}

8
задан Claudiu 1 April 2009 в 18:45
поделиться

4 ответа

Вызов к accept() блоки, пока это не имеет соединение. Только после того как трехстороннее квитирование завершается нет никакого соединения, таким образом, accept() не должен возвращаться. Для неблокирования сокетов это не заблокируется, но, и при этом это не даст Вам информацию о частично завершенных квитированиях.

9
ответ дан 5 December 2019 в 14:06
поделиться

Это в конечном счете испытает таймаут, потому что тот сценарий находится в фактической поверхности DoS (Отказ в обслуживании) и ресурс для принятия, возвращенного к для использования операционной системой. если мог бы заставить основной сокет блокироваться, так как клиент подключен к серверу однажды принять возвраты с дескриптором правильного файла

Если ошибка происходит во время соединения от клиента, значение errno будет установлено, и хорошая идея была бы журналом или отобразила бы сообщение об ошибке., однако прочитайте страницы справочника, это - лучший источник информации в большинстве случаев.

1
ответ дан 5 December 2019 в 14:06
поделиться

В случае существует отказ, скажем, тайм-аут, потому что квитирование не завершается, это возвратит-1 и установит errno. Я полагаю после рассмотрения страницы справочника, что это установит errno на ECONNABORTED.

0
ответ дан 5 December 2019 в 14:06
поделиться

Если клиент никогда не отправит ACK, примите (), то или заблокирует или возвратит EAGAIN, если сокет будет отмечен, не блокируясь.

2
ответ дан 5 December 2019 в 14:06
поделиться