Erro de ligação ao recriar o soquete
A possui o seguinte soquete de ouvinte:
int sd = socket(PF_INET, SOCK_STREAM, 0);
struct sockaddr_in addr;
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(http_port);
addr.sin_addr.s_addr = INADDR_ANY;
if(bind(sd,(sockaddr*)&addr,sizeof(addr))!=0)
{
...
}
if (listen(sd, 16)!=0)
{
...
}
int sent = 0;
for(;;) {
int client = accept(sd, (sockaddr*)&addr, (socklen_t*)&size);
if (client > 0)
{
...
close(client);
}
}
Se for um uso
close(sd);
e, em seguida, tentando recriar o soquete com o mesmo código, ocorre um erro de ligação e somente após 30 a 60 segundos um novo soquete é criado com sucess
Existe uma maneira de criar ou fechar de alguma maneira legal para evitar erros de ligaçã