Example #1
0
int main(int argc, char *argv[])
{
    printf("Datagram hash client example\n\n");

	//Check if arguments of sufficient size
    if (argc != 4) {
        fprintf(stderr,"Usage: udpClient serverName serverPort ownPort\n");
        exit(EXIT_FAILURE);
    }

    //build sockets
    buildSocket(argv);
    
    //Init favicon
    initializeFavicon(argv);
    

	//TODO: MAIN LOOP	
	onion_listen(o);
	onion_free(o);

    //Close socket
	close(sockfd); 

    return EXIT_SUCCESS;
}
Example #2
0
int main(int argc, char *argv[]) {
   
	/* handle arguments */
	if(argc != 4) {
		printf("Incorrect arguments, please use:\n./client server port username\n");
		return 1;
	}

	raw_mode(); 

	memset(liveChannel, '\0', CHANNEL_MAX);
	char * address = argv[1];
	char * port = argv[2];
	char * username = argv[3];

	/* Build Socket we pass the function the address and port */
	if(buildSocket(address, port) != true) {
		cooked_mode();
		return 1;
	}

	/* Handle Login */
	if(login(username) != true) {
		cooked_mode();
		return 1;
	}

	int parseStatus = true;
	char * input;
	fd_set readfds;

	promptUser();

	do {
		FD_ZERO(&readfds);
		FD_SET(0, &readfds);
		FD_SET(socketfd, &readfds);
		select(socketfd+1, &readfds, NULL, NULL, NULL);

		if(FD_ISSET(0, &readfds)) {

			input = inputString();


			if(input != NULL) {

				/* Parse Input */

			
				parseStatus = parseInput(input);

				if(parseStatus != -1) { 
					promptUser();
				}
			}

		} else if (FD_ISSET(socketfd, &readfds)) { 

			struct text * text = (struct text *) malloc(sizeof(struct text) + 1024);
			int bytes = 0;

			if((bytes = recvfrom(socketfd, text, 1024, 0,servinfo->ai_addr, &servinfo->ai_addrlen)) > 0) {
			
				clearPrompt();
				switchResp(text);
				free(text);
			
			}

		}	

	} while(parseStatus != -1);
	
	freeaddrinfo(servinfo);

	cooked_mode();
	return 0;
}