Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.31 KB | None | 0 0
  1. #define _XOPEN_SOURCE 500
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <sys/types.h>
  5. #include <sys/socket.h>
  6. #include <netinet/in.h>
  7. #include <netdb.h>
  8. #include <string.h>
  9.  
  10.  
  11. void error(char *msg)
  12. {
  13.   perror(msg);
  14.   exit(0);
  15. }
  16.  
  17.  
  18. int main(int argc,char *argv[]){
  19.  
  20.     /*char options;*/
  21.     char *botname;
  22.     char *servername;
  23.     char *buffer;
  24.     char *port = "9001";
  25.     extern char *optarg;
  26.     extern int optind;
  27.     char operator;
  28.    
  29.     int s;
  30.     struct addrinfo *result;
  31.     FILE *sstream;
  32.     int i = 0;
  33.    
  34.     while((operator = getopt(argc, argv, "n:p:")) != -1){
  35. /*switch for operatoren*/
  36.         switch(operator){
  37.             case'n':
  38.                 botname = optarg;
  39.                 printf("botname: %s\n", botname);
  40.                 break;
  41.             case'p':
  42.                 port = optarg;
  43.                 printf("port: %s\n", port);
  44.                 break;
  45.             case'?':
  46.                 printf("\nUnbekannte Option!!!\n");
  47.                 break;
  48.             default :
  49.                 printf("this shouldnt happen");
  50.         }
  51.  
  52.     }
  53. /*ended*/
  54.     if(optind < argc){
  55.         while(optind < argc){
  56.             servername = argv[optind++];
  57.             printf("%s\n",servername);
  58.         }
  59.     }else{
  60.         printf("no fucking server");
  61.         return -1;
  62.     }
  63. /*servername und optionen einlesen pferdi*/
  64. /*anlegen des sockets mit fehlerkontrolle*/
  65.  
  66. /*ende. nun: anlegen einer struct socketaddr für connect
  67.  
  68. */
  69.  
  70.     s = socket(AF_INET, SOCK_STREAM, 0);
  71.     if (s == -1){
  72.         perror("socket() failed");
  73.         return 1;
  74.     }
  75.     if((getaddrinfo(servername,port, NULL, &result)) != -1){
  76.         if(connect(s,result->ai_addr,result->ai_addrlen) != -1){
  77.             printf("connection established\n");
  78.             /*receive*/
  79.             if((sstream = fdopen(s, "r"))==NULL){
  80.                 printf("Streamopening scheiterte\n");
  81.             }
  82.             else{
  83.                 printf("Streamopening erfolgreich\n");
  84.                
  85.             }
  86.         }
  87.     }
  88.    
  89.     while(i==0){
  90.         if(fgets(buffer,100,sstream)==NULL){
  91.             printf("Buffering not erfolgreich\n");
  92.             i=1;
  93.         }
  94.         else{
  95.        
  96.             switch(buffer[0]){
  97.        
  98.                 case 'H':
  99.                     snprintf(buffer, 100, "AUTH %s\n", botname);
  100.                     break;
  101.                 case 'T':
  102.                     if(buffer[2]=='H'){
  103.                         printf("1: %s",strtok(buffer, " "));
  104.                         printf("2: %s",strtok(NULL, " "));
  105.                         printf("3: %s",strtok(NULL, " "));
  106.                         printf("4: %s",strtok(NULL, " "));
  107.                        
  108.                     }
  109.                     break;
  110.        
  111.        
  112.        
  113.        
  114.        
  115.             }
  116.        
  117.        
  118.        
  119.        
  120.        
  121.        
  122.         }
  123.        
  124.        
  125.         }
  126.        
  127.            
  128.            
  129.            
  130.            
  131.            
  132.            
  133.            
  134.            
  135.            
  136.            
  137.            
  138.            
  139.            
  140.            
  141.            
  142.            
  143.            
  144.  
  145. return 0;
  146. }
  147.  
  148. /*int rollOrSave()*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement