В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Для асинхронного подключения вы должны использовать следующие шаги:
socket(..., SOCK_NONBLOCK, ...)
connect(fd, ...)
0
, ни EINPROGRESS
, а затем прервать с ошибкой fd
не будет считаться готовым к выходу getsockopt(fd, SOL_SOCKET, SO_ERROR, ...)
Нет циклов - если вы не хотите обрабатывать EINTR
.
Если клиент запускается первым, вы должны увидеть ошибку ECONNREFUSED
на последнем шаге. Если это произойдет, закройте сокет и начните с начала.
Трудно сказать, что не так с вашим кодом, не видя больше деталей. Я полагаю, что вы не прерываете ошибки в своей check_socket
операции.
poll
. На обеих страницах руководства указано, что вы должны ждать указания, что socket i> доступен для записи i>. Можете ли вы представить минимальный пример, который показывает неожиданное поведение? – nosid 11 June 2015 в 20:02ETIMEDOUT
, используяPOLLOUT
. – nosid 19 June 2015 в 18:57