Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 31st, 2012  |  syntax: None  |  size: 2.91 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6. #include <netdb.h>
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include <arpa/inet.h>
  10. #include <unistd.h>
  11.  
  12. #define BUFFERSIZE 1024
  13.  
  14. char *command="Fehler";
  15.  
  16. void usage(void) {
  17.         (void) fprintf(stderr, "Usage: %s [-a arg] arg1\n", command);
  18.         exit(EXIT_FAILURE);
  19. }
  20.  
  21. int main(int argc, char **argv) {
  22.  
  23.         char myServer[BUFFERSIZE];
  24.         int myPort;
  25.         char translateLocalhost[]= {'l','o','c','a','l','h','o','s','t','\0'};
  26.         int sock;
  27.         char myGuess[] = {'b', 'd'};
  28.         unsigned char testchar[1];
  29.         struct sockaddr_in serveraddr;
  30.         unsigned long addr;
  31.         unsigned char recvmesg[1];
  32.         unsigned short int client_msg;
  33.         /*struct hostent *hp;*/
  34.  
  35.  
  36.         command = argv[0];
  37.  
  38.         if(argc != 3) {
  39.                 (void) printf("nicht 2 argumente!: %d", argc);
  40.                 usage();
  41.         }
  42.  
  43.         if(((int) strlen(argv[1])) >= BUFFERSIZE) {
  44.                 (void) printf("servername to long!");
  45.                 usage();
  46.         }
  47.  
  48.         strcpy(myServer, argv[1]);
  49.         myPort = (int) strtol(argv[2], NULL, 10); /*error if not possible !!!!*/
  50.  
  51.         if((strcmp(myServer,translateLocalhost)) == 0) {
  52.                 printf("gefudnen\n"); /*set myServer to 127.0.0.1*/
  53.         }
  54.  
  55.         (void) printf("server: %s port: %d\n", myServer, myPort);
  56.  
  57.  
  58.  
  59.         sock = socket(AF_INET, SOCK_STREAM, 0);
  60.         if (sock < 0) {
  61.                 (void)fprintf(stderr, "%s: could not create socket\n", command);
  62.                 exit(EXIT_FAILURE);
  63.         }
  64.  
  65.         /*hp = gethostbyname(myServer);
  66.         if (hp == NULL) usage();*/
  67.         printf("die laenge: %d\n", (int)sizeof(translateLocalhost));
  68.  
  69.         memset(&serveraddr, 0, sizeof(serveraddr));
  70.  
  71.         addr = inet_addr(myServer);
  72.         memcpy((char*)&serveraddr.sin_addr, &addr, sizeof(addr));
  73.         serveraddr.sin_family = AF_INET;
  74.         serveraddr.sin_port = htons(myPort);
  75.  
  76.         if(connect(sock, (struct sockaddr*)&serveraddr, sizeof(serveraddr)) < 0) {
  77.                 printf("error could not connect\n");
  78.                 usage();
  79.         }
  80.         printf("konnte verbinden!\n");
  81.         printf("hier nochmal translateLocalhost: %s\n", translateLocalhost);
  82.  
  83.         while(recvmesg[0] != 'q') {
  84.                
  85.         /*char *bla = "abcdefghi";*/
  86.         int x, myReceive;
  87.         unsigned short int zum;
  88.  
  89.         client_msg=0xFB6D; /* FB6D 7B6D OHNEPARITY*/
  90.  
  91.         printf("shortint vorher: %i\n", client_msg);
  92.  
  93.         myGuess[0] = (char) (client_msg & 0x00FF);
  94.         myGuess[1] = (char) (client_msg >> 8) & 0xFF;
  95.  
  96.         x = send(sock, &myGuess[0], 1, 0);
  97.         x = send(sock, &myGuess[1], 1, 0);     
  98.  
  99.         /*LOESCHEN ANFANG*/
  100.         printf("x ist: %d\n", x);
  101.  
  102.         printf("g0: %c g1: %c\n", myGuess[0], myGuess[1]);
  103.  
  104.         zum = myGuess[1];
  105.         zum = (zum << 8);
  106.         zum |= myGuess[0];
  107.  
  108.         printf("shortint nachher: %i\n", zum);
  109.         /*LOESCHEN ENDE*/
  110.  
  111.         myReceive = recv(sock, &recvmesg[0], sizeof(recvmesg), 0);
  112.  
  113.         printf("recvmesg: %c\n",recvmesg[0]);
  114.  
  115.         }
  116.         /*while(1) { }*/
  117.         close(sock);
  118.  
  119.         testchar[0] = 00000101;
  120.         if(testchar[0] == 101) printf("JUHU\n");
  121.         printf("testchar: %c\n",testchar[0]);
  122.         /* bind socket or die
  123.         bindreturn = bind(sock, (struct sockaddr*)&serveraddr, sizeof(serveraddr));
  124.         if (bindreturn < 0) {
  125.                 (void)fprintf(stderr, "%s: could not bind socket\n", command);
  126.                 exit(EXIT_FAILURE);
  127.         }*/
  128.  
  129.        
  130.        
  131.  
  132.         return 0;
  133. }