/* myclient.c */ #include #include #include #include #include #include #include #include #define BUF 1024 #define PORT 6543 int main (int argc, char **argv) { char* meinport = argv[2]; int create_socket; char buffer[BUF]; struct sockaddr_in address; int size; if( argc < 2 ){ printf("Usage: %s ServerAdresse\n", argv[0]); exit(EXIT_FAILURE); } if ((create_socket = socket (AF_INET, SOCK_STREAM, 0)) == -1) { perror("Socket error"); return EXIT_FAILURE; } memset(&address,0,sizeof(address)); address.sin_family = AF_INET; address.sin_port = htons (*meinport); inet_aton (argv[1], &address.sin_addr); if (connect ( create_socket, (struct sockaddr *) &address, sizeof (address)) == 0) { printf ("Connection with server (%s) established\n", inet_ntoa (address.sin_addr)); size=recv(create_socket,buffer,BUF-1, 0); if (size>0) { buffer[size]= '\0'; printf("%s",buffer); } } else { perror("Connect error - no server available"); return EXIT_FAILURE; } int last = 0; int mode = 0; char bufferString[1024]; do { char *p=getenv("USER"); printf("\x1B[32m"); printf("%s@%s:%d", p, inet_ntoa (address.sin_addr),ntohs(address.sin_port)); if (strncmp (bufferString, "send", 4) == 0 || mode == 1){ switch (last) { case 0: last += 1; mode = 1; printf("\x1B[34m"); printf("->SEND->Sender eingeben: \n"); break; case 1: last += 1; printf("\x1B[34m"); printf("->SEND->Empfänger eingeben: \n"); break; case 2: last += 1; printf("\x1B[34m"); printf("->SEND->Betreff eingeben: \n"); break; case 3: last = 0; mode = 0; printf("\x1B[34m"); printf("->SEND->Nachricht eingeben: \n"); break; } }else if (strncmp (bufferString, "list", 4) == 0 ){ printf("LIST wurde endlich erkannt!\n"); }else if (strncmp (bufferString, "read", 4) == 0 ){ printf("READ wurde endlich erkannt!\n"); } else if (strncmp (bufferString, "del", 4) == 0 ){ printf("DEL wurde endlich erkannt!\n"); } printf("\033[0;33m"); printf("$ "); printf("\x1B[37m"); fgets (buffer, BUF, stdin); strcpy(bufferString, buffer); send(create_socket, buffer, strlen (buffer), 0); } while (strcmp (buffer, "quit\n") != 0); close (create_socket); return EXIT_SUCCESS; }