rendered paste body
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <stdlib.h>
#define MAXBUFSIZE 16384
void error(char *msg)
{
perror(msg);
exit(0);
}
void sendtosock(int sockfd, char *buf, int len)
{
int pos=0, bytessend;
do {
if (bytessend = send(sockfd, buf+pos, len-pos, 0) < 0) {
printf("send() error\n");
exit(-1);
}
pos += bytessend;
} while (bytessend > 0);
}
void recvfromsock(int sockfd, char *buf, int len) {
int bytesrecv;
bytesrecv = recv(sockfd, buf, len, 0);
}
int main(int argc, char *argv[])
{
int sockfd;
int portno=6667;
char ircserv[20]="global.irc.gr";
struct sockaddr_in serv_addr;
struct hostent *server;
char buffer[MAXBUFSIZE];
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) { error("ERROR opening socket"); }
server = gethostbyname(ircserv);
if (server == NULL)
{
fprintf(stderr,"ERROR, no such host\n");
exit(0);
}
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);
serv_addr.sin_port = htons(portno);
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) {
error("ERROR connecting");
}
strcpy(buffer, "NICK _stathis_\r\n");
sendtosock(sockfd, buffer, strlen(buffer));
strcpy(buffer, "USER guest tolmoon tolsun :Ronnie Reagan");
sendtosock(sockfd, buffer, strlen(buffer));
while (recv(sockfd, buffer, 255, 0) > 0) {
if (strstr(buffer, "PING")) {
sendtosock(sockfd, "PONG\n", strlen("PONG\n"));
}
}
return 0;
}