int main(int argc, char** argv) { int n, fd; long dec, enc; struct Arguments args; pthread_t readThread, writeThread; long a, b; // two prime numbers if(argc < 5) { printf("file portNum hostName prime1 prime2\n"); exit(0); } a = atoi(argv[3]) + 6; b = atoi(argv[4]) + 6; generatePrimeNumbers(&a, &b); generateKeys(a, b, &args.my_e, &args.my_d, &args.my_c); args.run = 1; fd = connectTo(argv[2], atoi(argv[1])); args.connfd = fd; sendKeys(&args); receiveKeys(&args); pthread_create(&readThread, NULL, readData, &args); pthread_create(&writeThread, NULL, writeData, &args); pthread_join(readThread, NULL); pthread_cancel(writeThread); close(fd); }
/* Main function that also spawns the thread */ int main(int argc, char** argv) { srand(time(NULL)); pthread_t readThread, writeThread; struct Parameters args; int connfd; long first_prime, sec_prime, e, c, d; if(argc < 3) { printf("Run client with 'client [host name] [port number]'\n"); exit(0); } char host[20]; strcpy(host, argv[1]); connfd = connectTo(host, atoi(argv[2])); printf("\nEnter two numbers (m n) to generate keys based on the mth and nth primes: "); scanf("%ld %ld", &first_prime, &sec_prime); printf("\nGenerating keys...\n"); generatePrimeNumbers(&first_prime, &sec_prime); generateKeys(first_prime, sec_prime, &e, &d, &c); printf("Your public key (will be sent to server): %ld %ld\n", e, c); printf("Your private key (will not be sent): %ld %ld\n", d, c); args.connfd = connfd; args.clientE = e; args.clientN = c; args.clientD = d; receive_key(&args); send_key(&args); pthread_create(&writeThread, NULL, write_data, &args); pthread_create(&readThread, NULL, read_data, &args); pthread_join(writeThread, NULL); pthread_join(readThread, NULL); close(connfd); exit(0); }