voici la source:
void add_server(t_env *e)
{
int s;
struct sockaddr_in sin;
s = socket(PF_INET, SOCK_STREAM, 0);
sin.sin_family = AF_INET;
sin.sin_port = htons(e->port);
sin.sin_addr.s_addr = INADDR_ANY;
if ((bind(s, (struct sockaddr*)&sin, sizeof(sin))) == -1)
{
my_putstr("bind" );
exit (1);
}
if (listen(s, 42) == -1)
exit (1);
e->fd_type[s] = FD_SERVER;
e->fct_read[s] = server_read;
e->fct_write[s] = NULL;
}