примите () квитирование tcp/ip и метод

Я использую класс java ServerSocket для серверного приложения. Действительно принимает (), метод участвует в квитировании tcp/ip?

Как я вижу в дампе tcp/ip и от команды netstat, клиенты устанавливают соединения с тем, прежде чем признают, что метод называют, и возвратите объект Сокета.

Это - проблема Java, или я не понимаю, принимают () семантику?

5
задан Art Spasky 19 January 2010 в 22:35
поделиться

3 ответа

IMHO, защита от DOS-атак лучше решать на уровне веб-сервера (или даже на сетевом оборудовании), а не в PHP-коде.

-121--1018875-

Нет, вы не можете этого сделать, и вы бы этого не хотели - либо менеджер является сотрудником и имеет менеджера и помощника, либо он не имеет и, следовательно, должен иметь другой базовый класс, т.е. эта ситуация указывает на недостаток конструкции. Одной из возможностей может быть возврат null для этих свойств, хотя если это имеет смысл для домена.

-121--3595150-

Как правило, в Unix, если сокет помечен как listen (), операционная система начинает принимать соединения. При вызове функции accept () операционная система просто передает уже открытое соединение. Listen принимает параметр, который позволяет указать, сколько «непринятых» открытых соединений позволяет ОС (т.е. размер очереди).

6
ответ дан 14 December 2019 в 08:51
поделиться

Как сказал Дарин Димитров, нужно экспортировать схему. К счастью, есть хороший способ сделать это с помощью Fluent NH:)

   return Fluently.Configure()
   .Database(SQLiteConfiguration.Standard.InMemory().ShowSql())
   .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Person>())
   .ExposeConfiguration(BuildSchema)
    .BuildSessionFactory();

... где BuildSchema - метод:

private void BuildSchema(Configuration cfg)
{
  new SchemaExport(cfg)
    .Create(false, true);
}

Источник: http://wiki.fluentnhibernate.org/Schema_generation

-121--4548518-

Как говорили другие. Нет. Добавлю, что если не у каждого сотрудника есть менеджер и помощник, то иерархия наследования у вас неправильная. Казалось бы, единственное, чем делятся сотрудник и руководитель, - это именем. Можно добавить с помощью наследования, но нельзя удалить с помощью наследования.

-121--3595149-

Примите возврат только после подключения клиента и сервера (квитирование и т.д.).

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

Метод accept не принимает активного участия в рукопожатии как таковом. Отправка и прием сообщений осуществляется в стеке протоколов TCP/IP, обычно в пространстве ядра операционной системы.

Однако, метод accept() задействован в том смысле, что стек TCP/IP будет посылать сообщение SYN-ACK только в том случае, если какой-то процесс имеет активный вызов accept() для сокета, связанного с соответствующим IP-адресом и портом. После завершения трехстороннего квитирования вызов метода accept() завершится.

Если ни один из вызовов метода accept() со временем не будет вызван, то входящее сообщение SYN будет сброшено ядром и удаленный клиент в конце концов совершит тайм-аут попытки соединения. (С другой стороны, если IP-адрес/порт не привязан, то ядро, скорее всего, ответит RST, и удаленный клиент увидит "соединение отклонено")

.
1
ответ дан 14 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: