void SchroniskoTesty::testAtrybutyKlienta()
{
    Klient klient(123, "Adam", "Kowalski", "ul. Kościelna 12; Bydgoszcz; 85790", 600821340);

    QCOMPARE( 123, klient.getId() );
    QCOMPARE( QString("Adam"), klient.getImie() );
    QCOMPARE( QString("Kowalski"), klient.getNazwisko() );
    QCOMPARE( QString("ul. Kościelna 12; Bydgoszcz; 85790"), klient.getUlica() );
    QCOMPARE( 600821340, klient.getNumerTelefonu() );

    QEXPECT_FAIL("", "test na niewłaściwe dane : niezgodny numer Id", Continue);
    QCOMPARE( 345, klient.getId());

    QEXPECT_FAIL("", "test na niewłaściwe dane : niezgodne imie", Continue);
    QCOMPARE( QString("Kuba"), klient.getImie());

    QEXPECT_FAIL("", "test na niewłaściwe dane : niezgodne nazwisko", Continue);
    QCOMPARE( QString("Nowicki"), klient.getNazwisko() );

    QEXPECT_FAIL("", "test na niewłaściwe dane : niezgodna ulica", Continue);
    QCOMPARE( QString("ul. Sławków 3; Lublin; 44230"), klient.getUlica() );

    QEXPECT_FAIL("", "test na niewłaściwe dane : niezgodny numer", Continue);
    QCOMPARE( 515987464, klient.getNumerTelefonu() );
}
Example #2
0
int main(int argc, char *argv[])
{
	char *localaddr = (char *)"127.0.0.1"; //adres lokalny 
	int client, server;
	int master_sock;   
	int k=0;

	if(argc > 1)
	{    

		for(k=1; k<argc; k++)
		{
			tokenize(argv[k]);

			int localport = atoi(res[0]); //wyniki z tokenize
			char *remoteaddr = (char *)(res[1]); //wyniki z tokenize
			int remoteport = atoi(res[2]); //wyniki z tokenize
			master_sock = serwer_gniazdo(localaddr, localport);
 			
			if(!fork())
			{
				int potomek=0, status=0;
				client = czekaj_na_polaczenie(master_sock);	
						server = otworz_host(remoteaddr, remoteport);					

				//if (!(potomek=fork()))
			//	{   //POTOMEK

					printf("przed czekaj_na_polaczenie\n");					
					klient(client, server);
					printf("za klientem\n");					
					close(client);
				    //close(server);	           
					//close(master_sock);					
			//	}
			//	waitpid(potomek, &status,0);

			}
		}
	}
	else
	{
		printf("Uzycie: port:adres:port");
	}
	return 0;
}
Example #3
0
//***************************************************************************
// main
//***************************************************************************
int main(int argc, char *argv[])
{
  // zpracovani vstupnich argumentu
	if (((argc > 1) && (!strcmp(argv[1], "/h"))) || (argc > 2))
		pomoc(argv[0]);

	int port = 0;
	port = (argc > 1) ? atoi(argv[1]) : 6666;
	
	if (port == 0)
	{
		printf("Spatny format portu\n");
		pomoc(argv[0]);
	}
	
	// vytvoreni socketu
	int sock_client = 0;
	int sock_listen = socket(AF_INET, SOCK_STREAM, 0);
	if (sock_listen == -1)
	{
		printf("Nepodarilo se vytvorit socket.\n");
		exit(1);
	}

	in_addr addr_any = { INADDR_ANY };
	sockaddr_in server_addr;
	server_addr.sin_family = AF_INET;
	server_addr.sin_port = htons(port);
	server_addr.sin_addr = addr_any;
	
	// smi socket pouzit cislo portu
	int opt = 1;
	if (setsockopt(sock_listen, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0)
		printf("Nelze nastavit vlastnosti socketu.\n");

	// prirazeni adresy a portu socketu	
	if (bind(sock_listen, (const sockaddr*) &server_addr, sizeof(server_addr)) < 0)
	{
		printf("Prirazeni adresy selhalo.\n");
		close(sock_listen);
		exit(1);
	}

	// server bude naslouchat na zadanem portu
	if (listen(sock_listen, 1) < 0)
	{
		printf("Nelze naslouchat na zadanem portu.\n");
		close(sock_listen);
		exit(1);
	}

	// vytvoreni semaforu
	int sem = 0;
	if ((sem = vytvor_semafory()) < 0)
	{
		printf("Nelze vytvorit a inicializovat semafory (%d).\n", sem);
		close(sock_listen);
		exit(1);
	}
	
	printf("Server spusten a nastaven ...\n");
	printf("Zadejte 'quit' pro ukonceni procesu serveru.\n");
	
	int konec = 1;
	while (konec)
	{
		char buf[128];

		// mnozina handlu
		fd_set pro_in;

		// vynulovani mnoziny
		FD_ZERO(&pro_in);
		
		FD_SET(STDIN_FILENO, &pro_in);

    // pridani handlu
    FD_SET(sock_listen, &pro_in);

		// vybrani handl, na kterem jsou data
		if (select(sock_listen + 1, &pro_in, NULL, NULL, NULL) < 0)
			break;

		// jsou data na stdin?
		if (FD_ISSET(STDIN_FILENO, &pro_in))
		{
			// nacist je do bufferu
			read(STDIN_FILENO, buf, sizeof(buf));
		}
		// ceka nejaky kleint na obslouzeni?
		else if (FD_ISSET(sock_listen, &pro_in))
		{
			sockaddr_in rsa;
			int rsa_size = sizeof(rsa);

			// prijmuti noveho spojeni
			sock_client = accept(sock_listen, (sockaddr*)&rsa, (socklen_t*)&rsa_size);
			if ( sock_client == -1 )
			{
				printf("Spojeni se nezdarilo...\n");
				close(sock_listen);
				exit(1);
			}
			
			// delka adresy serveru
			int lsa = sizeof(server_addr);

			// ziskani vlastni ip
			getsockname(sock_client, (sockaddr*)&server_addr, (socklen_t*)&lsa); 

			printf("Server sidli na: '%s:%d'\n", inet_ntoa(server_addr.sin_addr), ntohs(server_addr.sin_port));

			// ziskani ip klienta
			getpeername(sock_client, (sockaddr*)&server_addr, (socklen_t*)&lsa);

			printf("Novy klient prichazi z: '%s:%d'\n",	inet_ntoa(server_addr.sin_addr), ntohs(server_addr.sin_port));

			char zprava[128];
			sprintf(zprava, "Spojeni navazano ...\n");
			write(sock_client, zprava, sizeof(zprava));
			
			int kod = klient(sock_client);
			
			// fork a ulozeni pid potomka
			klient_pid[klient_cnt] = fork();

			if (klient_pid[klient_cnt] == 0) // pokracuje klient
			{
				// zavreni spojeni serveru
				close(sock_listen);

				switch (kod)
				{
					case 1:
						return ctenar(sock_client);
					case 9:
						return spisovatel(sock_client);
				}
				return 1;
			}
			else // pokracuje server
			{
				// zavreni spojeni klienta
				close(sock_client);				
				sock_client = 0;
				
				klient_cnt++;
			}
		}
		
    // byl pozadavek na ukonceni prace serveru?
    if (!strncasecmp(buf, "quit", 4))
    {
			printf("Server bude ukoncen ...\n");

			konec = 0;

			printf("Cekani na ukonceni prace vsech ctenaru a spisovatelu.\n");
			// cekani nez se ukonci vsichni klienti
			for (int i = 0; i < klient_cnt; i++)
			{
				int s;
				if (klient_pid[i] > 0)
				 	waitpid(klient_pid[i], &s, 0); 
			}

			close(sock_client);
			break;
    }		
	}
	
	close(sock_listen);
	if (uvolni_semafory() < 0)
	{
		printf("Nelze rusit semafory.\n");
		exit(1);
	}
	exit(0);
}
void SchroniskoTesty::testFunkcjiToStringKlienta()
{
    Klient klient(123, "Józef", "Jung", "ul. Bema 12; Nysa; 42390", 345828740);
    qDebug() << klient.toString();
}