- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <stdio.h>
- #include <string.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #define BUFFERSIZE 1024
- char *command="Fehler";
- void usage(void) {
- (void) fprintf(stderr, "Usage: %s [-a arg] arg1\n", command);
- exit(EXIT_FAILURE);
- }
- int main(int argc, char **argv) {
- char myServer[BUFFERSIZE];
- int myPort;
- char translateLocalhost[]= {'l','o','c','a','l','h','o','s','t','\0'};
- int sock;
- char myGuess[] = {'b', 'd'};
- unsigned char testchar[1];
- struct sockaddr_in serveraddr;
- unsigned long addr;
- unsigned char recvmesg[1];
- unsigned short int client_msg;
- /*struct hostent *hp;*/
- command = argv[0];
- if(argc != 3) {
- (void) printf("nicht 2 argumente!: %d", argc);
- usage();
- }
- if(((int) strlen(argv[1])) >= BUFFERSIZE) {
- (void) printf("servername to long!");
- usage();
- }
- strcpy(myServer, argv[1]);
- myPort = (int) strtol(argv[2], NULL, 10); /*error if not possible !!!!*/
- if((strcmp(myServer,translateLocalhost)) == 0) {
- printf("gefudnen\n"); /*set myServer to 127.0.0.1*/
- }
- (void) printf("server: %s port: %d\n", myServer, myPort);
- sock = socket(AF_INET, SOCK_STREAM, 0);
- if (sock < 0) {
- (void)fprintf(stderr, "%s: could not create socket\n", command);
- exit(EXIT_FAILURE);
- }
- /*hp = gethostbyname(myServer);
- if (hp == NULL) usage();*/
- printf("die laenge: %d\n", (int)sizeof(translateLocalhost));
- memset(&serveraddr, 0, sizeof(serveraddr));
- addr = inet_addr(myServer);
- memcpy((char*)&serveraddr.sin_addr, &addr, sizeof(addr));
- serveraddr.sin_family = AF_INET;
- serveraddr.sin_port = htons(myPort);
- if(connect(sock, (struct sockaddr*)&serveraddr, sizeof(serveraddr)) < 0) {
- printf("error could not connect\n");
- usage();
- }
- printf("konnte verbinden!\n");
- printf("hier nochmal translateLocalhost: %s\n", translateLocalhost);
- while(recvmesg[0] != 'q') {
- /*char *bla = "abcdefghi";*/
- int x, myReceive;
- unsigned short int zum;
- client_msg=0xFB6D; /* FB6D 7B6D OHNEPARITY*/
- printf("shortint vorher: %i\n", client_msg);
- myGuess[0] = (char) (client_msg & 0x00FF);
- myGuess[1] = (char) (client_msg >> 8) & 0xFF;
- x = send(sock, &myGuess[0], 1, 0);
- x = send(sock, &myGuess[1], 1, 0);
- /*LOESCHEN ANFANG*/
- printf("x ist: %d\n", x);
- printf("g0: %c g1: %c\n", myGuess[0], myGuess[1]);
- zum = myGuess[1];
- zum = (zum << 8);
- zum |= myGuess[0];
- printf("shortint nachher: %i\n", zum);
- /*LOESCHEN ENDE*/
- myReceive = recv(sock, &recvmesg[0], sizeof(recvmesg), 0);
- printf("recvmesg: %c\n",recvmesg[0]);
- }
- /*while(1) { }*/
- close(sock);
- testchar[0] = 00000101;
- if(testchar[0] == 101) printf("JUHU\n");
- printf("testchar: %c\n",testchar[0]);
- /* bind socket or die
- bindreturn = bind(sock, (struct sockaddr*)&serveraddr, sizeof(serveraddr));
- if (bindreturn < 0) {
- (void)fprintf(stderr, "%s: could not bind socket\n", command);
- exit(EXIT_FAILURE);
- }*/
- return 0;
- }