• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fnds

Socket - ligar ao servidor atraves de dns

9 mensagens neste tópico

como foço para o cliente se ligar a um servidor através do dns, é que eu preciso de ligar ao meu pc, mas este tem um ip dinâmico, o que eu queria era ligar ao servidor usando um dns do no-ip, só vejo duas hipóteses ou detecto o ip a que pertence o dns, ou faço a ligação directamente, mas eu não sei como faze-las (nem se dão).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de fazer a resolução de nomes.

Podes usar a seguinte função:

void resolucao_nomes(char host[81])
{
struct sockaddr_in sin;
char *ptr, **pptr;
struct hostent *host_ptr;

if((host_ptr = gethostbyname(host)) == NULL)
{
	printf("Erro na resolucao de nomes!!\n");
	exit(-1);
}
else{
	pptr = host_ptr->h_addr_list;
	strcpy(ip,inet_ntoa(*(struct in_addr *)*host_ptr->h_addr_list));
}
}

Depois podes chamar da seguinte maneira:

char server[81];
char ip[16];
...
strcpy(server,"http://www.dominio.com");
...

resolucao_nomes(server); // em "ip" vai ficar o IP desse host

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já agora..., como faço para o servidor poder comandar vários clientes ao mesmo tempo?, os clientes ligam-se todos, mas eu só consigo controlar o primeiro, sei que tenhjo de usar algo do género

list(nomeSock, númeroLigações);

mas a partir daqui não si o que fazer.... :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Suponho que estejas a usar TCP, tens de fazer da seguinte forma:

listen(sock,5);

Ou seja neste caso aceita 5 ligações em simultâneo. Depois tens de abrir um novo socket por cada cliente, fechando o que recebes-te:

newSock=accept(sock,(struct sockaddr *)&from, (void *)&ad1);

close(sock);

A partir daqui é tudo igual. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, é uma estrutura (struct sockaddr_in) que vai conter informações sobre o cliente ligado ao servidor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Procura por código jáfeito de C Sockets: Server/Client.

É que em C é tudo muito meticuloso nessa área.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora