|
Feri - izredni študij Feri - izredni študij
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
MilanG
Pridružen/-a: 16.01. 2010, 13:16 Prispevkov: 12
|
Objavljeno: 16 Jan 2010 13:32 Naslov sporočila: Omrežje vaja - ugani |
|
|
Evo moje malenkosti. Ni vse postimano do konca, ampak deluje
Saj je ta tak Zazula rekel ne?
Koda: |
#include <sys/types.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <netdb.h>
#include <stdio.h>
#include <netinet/in.h>
#include <time.h>
#include <string.h>
int main(int argc, char** argv)
{
char buffer [255];
int stevilka = 8;
int guess = 0;
int konec = 1;
char cestitke []= "cestitke\n";
char manjsa []= "moja stevilka je manjsa\n";
char vecja []= "moja stevilka je vecja\n";
char welcome [] = "Ugani stevilo med 1 in ";
char niz[128];
int zgornja_meja = 0;
time_t dummy;
struct sockaddr_in my_addr;
int serversocket = socket(AF_INET, SOCK_STREAM, 0); /* do some error checking! */
my_addr.sin_family = AF_INET; /* host byte order */
my_addr.sin_port = htons(atoi(argv[1])); /* short, network byte order */
my_addr.sin_addr.s_addr = inet_addr("0.0.0.0");
bzero(&(my_addr.sin_zero), 8); /* zero the rest of the struct */
srand((unsigned int) time(&dummy));
zgornja_meja = atoi(argv[2]);
stevilka = 1 + rand() % zgornja_meja-1;
printf("zgornja meja je %d, stevilka je %d\n",zgornja_meja, stevilka);
sprintf(niz,"Ugani stevilo med 1 in %d \n",zgornja_meja);
/* don't forget your error checking for bind(): */
if (bind(serversocket, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))==-1)
{
perror("Cannot bind");
}
listen(serversocket, 10);
while (konec)
{
struct sockaddr client_addr;
socklen_t size = sizeof(client_addr);
int clientfd = accept(serversocket, &client_addr, &size);
/* insert code here*/
write (clientfd,niz,strlen(niz));
while (read(clientfd, &buffer, sizeof(buffer))>0)
{
guess = atoi(buffer);
printf("izhod: %d\n",guess);
if (guess == stevilka)
{
write (clientfd,cestitke, sizeof(cestitke));
konec = 0;
break;
}
if (guess < stevilka)
write (clientfd,vecja, sizeof(vecja));
else
write (clientfd,manjsa, sizeof(manjsa));
}
}
return 0;
}
|
|
|
Nazaj na vrh |
|
|
BojanO
Pridružen/-a: 16.01. 2010, 15:35 Prispevkov: 13
|
Objavljeno: 16 Jan 2010 17:12 Naslov sporočila: |
|
|
Pozdrav!
Hvala, bomo probali.
Lp, Bojan. _________________ Lp, Bojan. |
|
Nazaj na vrh |
|
|
BojanO
Pridružen/-a: 16.01. 2010, 15:35 Prispevkov: 13
|
Objavljeno: 21 Jan 2010 02:44 Naslov sporočila: Bind |
|
|
Kako rešiti ta problem, kaj ga povzroča: Cannot bind: Permission denied _________________ Lp, Bojan. |
|
Nazaj na vrh |
|
|
igor Administrator foruma
Pridružen/-a: 20.09. 2009, 17:22 Prispevkov: 192
|
Objavljeno: 21 Jan 2010 15:36 Naslov sporočila: |
|
|
Če se jaz prav spomnim je meni to javljalo, ko sem v virtual mašini imel izklopljen mrežni vmesnik. Je mogoče kaj takega ? |
|
Nazaj na vrh |
|
|
jani_k
Pridružen/-a: 21.01. 2010, 17:28 Prispevkov: 8
|
Objavljeno: 21 Jan 2010 17:43 Naslov sporočila: |
|
|
Permission denied pomeni, da nimas pravic do tega. Jaz sem mel isti problem in ko sem zadevo zagnal kot root je delalo brez problema.
Primer: sudo ./ime_programa |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu
|
|