Feri - izredni študij Seznam forumov Feri - izredni študij
Feri - izredni študij
 
 Pogosta vprašanjaPogosta vprašanja   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   RSS Feed   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Zasebna sporočilaZasebna sporočila   PrijavaPrijava 




Omrežje vaja - ugani

 
Objavi novo temo   Odgovori na to temo    Feri - izredni študij Seznam forumov -> Osnove sistemske programske opreme OSPO
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
MilanG



Pridružen/-a: 16.01. 2010, 13:16
Prispevkov: 12

PrispevekObjavljeno: 16 Jan 2010 13:32    Naslov sporočila: Omrežje vaja - ugani Odgovori s citatom

Evo moje malenkosti. Ni vse postimano do konca, ampak deluje Smile
Saj je ta tak Zazula rekel ne? Smile

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
BojanO



Pridružen/-a: 16.01. 2010, 15:35
Prispevkov: 13

PrispevekObjavljeno: 16 Jan 2010 17:12    Naslov sporočila: Odgovori s citatom

Pozdrav!

Hvala, bomo probali.

Lp, Bojan.
_________________
Lp, Bojan.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
BojanO



Pridružen/-a: 16.01. 2010, 15:35
Prispevkov: 13

PrispevekObjavljeno: 21 Jan 2010 02:44    Naslov sporočila: Bind Odgovori s citatom

Kako rešiti ta problem, kaj ga povzroča: Cannot bind: Permission denied
_________________
Lp, Bojan.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
igor
Administrator foruma


Pridružen/-a: 20.09. 2009, 17:22
Prispevkov: 192

PrispevekObjavljeno: 21 Jan 2010 15:36    Naslov sporočila: Odgovori s citatom

Č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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jani_k



Pridružen/-a: 21.01. 2010, 17:28
Prispevkov: 8

PrispevekObjavljeno: 21 Jan 2010 17:43    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Feri - izredni študij Seznam forumov -> Osnove sistemske programske opreme OSPO Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Stran 1 od 1

 
Pojdi na:  
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


MojForum.si - brezplačno gostovanje forumov. Powered by phpBB 2.