#include #include #include #include #include #include #include #include #include #ifndef MAXDATASIZE #define MAXDATASIZE 1000 #endif /******************************************************** **Distributed under the terms of the GNU GPL v2 License** **www.gnu.org ** **www.fsf.org ** **(C) Arrav ** ********************************************************/ /*int cretcp(int flags){ int fd; if ((fd = socket(PF_INET, SOCK_STREAM, flags)) == -1) { perror("socket"); exit(1); } return fd; }*/ int cretcp(){ int fd; if ((fd = socket(PF_INET, SOCK_STREAM,0)) == -1) { perror("socket"); exit(1); } return fd; } /*int creudp(int flags){ int fd; if ((fd = socket(PF_INET, SOCK_DGRAM, flags)) == -1) { perror("socket"); exit(1); } return fd; }*/ int creudp(){ int fd; if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket"); exit(1); } return fd; } int con(int sockfd,struct sockaddr_in address){ if (connect(sockfd, (struct sockaddr *)&address, sizeof(struct sockaddr)) == -1 ){ perror("connect"); exit(1); } return 0; } char* hostname(char* name){ struct hostent *he; if ((he=gethostbyname(name)) == NULL) { herror("gethostbyname"); exit(1); } return he->h_addr; } struct sockaddr_in ip(int port, char* addr){ struct sockaddr_in conaddr; conaddr.sin_family = AF_INET; conaddr.sin_port = htons(port); conaddr.sin_addr.s_addr = inet_addr(addr); memset(conaddr.sin_zero, '\0', sizeof conaddr.sin_zero); return conaddr; } struct sockaddr_in sockinfo(int port, int addr){ struct sockaddr_in conaddr; conaddr.sin_family = AF_INET; conaddr.sin_port = htons(port); conaddr.sin_addr = *((struct in_addr *)addr); memset(conaddr.sin_zero, '\0', sizeof conaddr.sin_zero); return conaddr; } int rcv(int sockfd, char* buf){ int numbytes; if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) { perror("recv"); exit(1); } return numbytes; } int rcvui(int sockfd, unsigned int buf){ int numbytes; if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) { perror("recv"); exit(1); } return numbytes; } int snd(int sockfd, char* buf){ int numbytes; /*int bufsize; int i; for(bufsize = 0; bufsize<=MAXDATASIZE; bufsize++) { if (buf[bufsize] = '\0'){ i = bufsize; } } printf("buffersize = %d\n",i); */ int i = strlen(buf); //printf("strlen = %d\n",i); if((numbytes=send(sockfd, buf, i, 0)) == -1) { perror("send"); exit(1); } if (numbytes!=strlen(buf)){ printf("ERROR - buffer fragmentation\n"); } return numbytes; } int sndi(int sockfd, int buf){ int numbytes; /*int bufsize; int i; for(bufsize = 0; bufsize<=MAXDATASIZE; bufsize++) { if (buf[bufsize] = '\0'){ i = bufsize; } } printf("buffersize = %d\n",i); */ int i = strlen(buf); //printf("strlen = %d\n",i); if((numbytes=send(sockfd, buf, i, 0)) == -1) { perror("send"); exit(1); } if (numbytes!=strlen(buf)){ printf("ERROR - buffer fragmentation\n"); } return numbytes; } int bnd(int sockfd, struct sockaddr_in address){ if (bind(sockfd, (struct sockaddr *)&address, sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); } return 0; } int parse(char* q){ int mode = 0; int i; for(i=0;i