Conectando em servidor de irc por cliente em C

1. Conectando em servidor de irc por cliente em C

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/03/2020 - 04:17h

Bom dia pessoal, tentando conectar no irc aqui por sockets e entrar em um canal, mas parece que não chega nem a conectar... da sempre quase a mesma coisa:


$ ./irc irc.freenode.net 6667
:kornbluth.freenode.net NOTICE * :*** Looking up your hostname...
:kornbluth.freenode.net NOTICE * :*** Checking Ident
hostname...
:kornbluth.freenode.net NOTICE * :*** Found your hostname
ame...
:kornbluth.freenode.net NOTICE * :*** No Ident response

ame...
ERROR :Closing Link: xxx.xxx.xx.x (Connection timed out)


segue o code:

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

int main(char argc,char **argv)
{
int sockirc,le;
struct addrinfo ircserver,*port;
char mensagem[12] = "/join #test";
char resposta[2056];

if(argc<2)
{
printf("\n%s ircserver port\n",argv[0]);
exit(0);
}
memset(&ircserver,0,sizeof(ircserver));
ircserver.ai_family=AF_INET;
ircserver.ai_socktype = SOCK_STREAM;
getaddrinfo(argv[1],argv[2], &ircserver, &port);
if((sockirc = socket(port->ai_family,port->ai_socktype,port->ai_protocol))==-1)
{
perror("socket()");
exit(1);
}
if((connect(sockirc,port->ai_addr,port->ai_addrlen))==-1)
{
perror("connect()");
exit(1);
}

if((send(sockirc,mensagem,strlen(mensagem),0))<0)
{
perror("send()");
exit(1);
}
while(le=read(sockirc,resposta,sizeof(resposta)))
{
fprintf(stdout,"%s",resposta);
}
return (0);
}




--
Just bring us some beers, and then we can talk about our systems. :)



  


2. Re: Conectando em servidor de irc por cliente em C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/03/2020 - 21:43h

Cristhoffer1994 escreveu:

Bom dia pessoal, tentando conectar no irc aqui por sockets e entrar em um canal, mas parece que não chega nem a conectar... da sempre quase a mesma coisa:


O IRC tem protocolos definidos, que seu programa não parece estar seguindo. Você já leu as RFCs a respeito de IRC (RFC2810, arquitetura; RFC2811, operações com canais; RFC2812, comunicação com clientes; RFC2813, comunicação entre servidores)?


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts