Linux, sockets, connexion non bloquante

Je veux créer un blocage non connecter.
Comme ceci:

socket.connect(); //returns immediately

Pour cela, j'utilise un autre thread, une boucle infinie et Linux epoll. Comme cette(pseudo-code):

//in another thread
{
  create_non_block_socket();
  connect();

  epoll_create();
  epoll_ctl(); //subscribe socket to all events
  while (true)
  {
    epoll_wait(); //wait a small time(~100 ms)
    check_socket(); //check on EPOLLOUT event
  }
}

Si je lance un serveur et un client, tout cela fonctionne. Si j'ai d'abord exécuter un client, attendre un certain temps, un serveur, le client ne se connecte pas.

Ce que je fais mal? Peut-être il peut être fait différemment?

source d'informationauteur herolover