Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-03-2006, 19:49   #1
PacManZ
Senior Member
 
L'Avatar di PacManZ
 
Iscritto dal: Jan 2002
Città: Oggiona
Messaggi: 755
programmino scolastico client server



compilo con devc++, ma nella riga

struct sockaddr_in server;


il compilatore mi da questo errore "storage size of 'server' isn't known"
che diavolo significa?
PacManZ è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 20:42   #2
PacManZ
Senior Member
 
L'Avatar di PacManZ
 
Iscritto dal: Jan 2002
Città: Oggiona
Messaggi: 755
non avevo la libreria netinet/in.h ...
ora pero' mi da un sacco di errori di linker...
provo a postare il codice

Codice:
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#define PORT 4000

void main(int argc,char *argv[])
    {
    struct sockaddr_in server;
    int sd,errore,i;
    char c;
    FILE *punt;
    server.sin_family=AF_INET;
    server.sin_port=htons((u_short)PORT);
    server.sin_addr.s_addr=inet_addr(argv[1]);
    sd=socket(AF_INET,SOCK_STREAM,0);
    errore=connect(sd,(struct sockaddr*)&server,sizeof(server));
    if (errore)
        printf("Connessione non avvenuta.");
    else
        {
        i=0;
        while (argv[2][i]!='\0')
            {
            i++;
            send(sd,&c,i,0);
            }
        c='*';
        send(sd,&c,1,0);
        punt=fopen(argv[3],"w");
        i=recv(sd,&c,1,0);
        while(i>0)
            {
            fprintf(punt, "%c",c);
            c=recv(sd,&c,1,0);
            }
        fclose(punt);
        close(sd);
        }
    }
PacManZ è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 21:15   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
eeeeehhhhhhh??????? ma che hai incluso?? ma scusa, includi semplicemente winsock.h e poi linka a ws2_32.lib ... sei su Windows mica su Linux...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 21:30   #4
PacManZ
Senior Member
 
L'Avatar di PacManZ
 
Iscritto dal: Jan 2002
Città: Oggiona
Messaggi: 755
ah si?
io ho provato a scrivere il programma che il prof ha scritto alla lavagna
il prof e' bravo ed e' stato capace di farmi capire quasi tutto, ma non ci ha detto che il programma andasse sotto linux...
PacManZ è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 21:52   #5
PacManZ
Senior Member
 
L'Avatar di PacManZ
 
Iscritto dal: Jan 2002
Città: Oggiona
Messaggi: 755
mi da gli errori piu' strani.. il linker.. le librerie boh...
PacManZ è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 22:00   #6
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
devi passare in compilazione -l e la libreiria dll che ti hanno segnalato prima.
se ci dici con cosa compili possiamo esserti di maggiore aiuto
ciao
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 22:08   #7
PacManZ
Senior Member
 
L'Avatar di PacManZ
 
Iscritto dal: Jan 2002
Città: Oggiona
Messaggi: 755
uso devc++ 4.9.9.2

ho provato a togliere un po di include e a mettere il winsock.h

Codice:
#include <stdio.h>
#include <winsock.h>
#define PORT 4000

void main(int argc,char *argv[])
    {
    struct sockaddr_in server;
    int sd,errore,i;
    char c;
    FILE *punt;
    server.sin_family=AF_INET;
    server.sin_port=htons((u_short)PORT);
    server.sin_addr.s_addr=inet_addr(argv[1]);
    sd=socket(AF_INET,SOCK_STREAM,0);
    errore=connect(sd,(struct sockaddr*)&server,sizeof(server));
    if (errore)
        printf("Connessione non avvenuta.");
    else
        {
        i=0;
        while (argv[2][i]!='\0')
            {
            i++;
            send(sd,&c,i,0);
            }
        c='*';
        send(sd,&c,1,0);
        punt=fopen(argv[3],"w");
        i=recv(sd,&c,1,0);
        while(i>0)
            {
            fprintf(punt, "%c",c);
            c=recv(sd,&c,1,0);
            }
        fclose(punt);
        close(sd);
        }
    }

come si fa a includere una libreria??
fino a oggi ho solo incluso file .h (quindi immagino solo headers)
PacManZ è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 22:31   #8
vlacus
Member
 
L'Avatar di vlacus
 
Iscritto dal: May 2003
Messaggi: 118
passare a linux no?...
__________________
forum che tratta di calcolatrici grafiche in genere: consigli e aiuti www.helpcalculator.tk
vlacus è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 22:37   #9
PacManZ
Senior Member
 
L'Avatar di PacManZ
 
Iscritto dal: Jan 2002
Città: Oggiona
Messaggi: 755
sto pensando di fare una partizione per linux, ma preferirei far girare il programmino anke su windows...
PacManZ è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 22:38   #10
AbuJaffa
Senior Member
 
L'Avatar di AbuJaffa
 
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
Anzitutto la gestione del winsock è leggermente diverso dalla programmazione di rete in linux. Prima di usare le funzioni di winsock, bisogna preliminarmente usare la seguente funzione che non fa altro che inizializzare la windows socket.

int winDLLstart(){
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2, 0);
err = WSAStartup(wVersionRequested, &wsaData);
return(err);
}

Come potrai notare, sono nient'altro che luride convenzioni che Microsoft ha imposto ai programmatori windows. La parte importante è la WSAStartup().

per linkare la libwsock32.a fai...Progetto-->opzioni del progetto-->Parametri -->aggiungi libreria-->libwsock32.a
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio.
HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI!
ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant
AbuJaffa è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 22:58   #11
PacManZ
Senior Member
 
L'Avatar di PacManZ
 
Iscritto dal: Jan 2002
Città: Oggiona
Messaggi: 755
ora sembra andare almeno la compilazione

ora provo a creare il programma server e faccio qualke esperimento

grazie 1000
PacManZ è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 23:49   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
mi sa che mi sono sbagliato: il nome dell'header dovrebbe essere winsock2.h (mi so perso un 2); winsock.h è una sua vecchia versione. per quello che devi fare tu non dovrebbe cambiare nulla, ma non si sa mai. comunque come altri ti hanno giustamente detto, la gestione dei socket tra Windows e Linux presenta differenze piccole e molto bastarde (su Linux un valore di ritorno nullo vuol dire una cosa e su Windows vuol dire l'opposto) percui ci devi andare di #ifdef, ma io preferirei lavorare come dice il tuo professore; se proprio non vuoi fare il dual boot (e ti capisco) installati VMWare Workstation (se non erro ne esiste una versione gratis).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2006, 10:29   #13
PacManZ
Senior Member
 
L'Avatar di PacManZ
 
Iscritto dal: Jan 2002
Città: Oggiona
Messaggi: 755
il server crasha dandomi un errore di segmentazione (accede a memoria non sua?)

Codice:
#include <stdio.h>
#include <winsock2.h>
#define PORT 4000
#define MAXC 15

void main(void)
    {
    int winDLLstart(){
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested = MAKEWORD(2, 0);
    err = WSAStartup(wVersionRequested, &wsaData);
    return(err);
    } 
    struct sockaddr_in server,client;
    int sd,new_sd,errore,i,j,client_len;
    char c,nomefile[100];
    FILE *punt;
    server.sin_family=AF_INET;
    server.sin_port=htons((u_short)PORT);
    server.sin_addr.s_addr=INADDR_ANY;
    sd=socket(AF_INET,SOCK_STREAM,0);
    bind(sd,(struct sockaddr*)&server,sizeof(server));
    listen(sd,MAXC);
    while(1)
        {
        new_sd=accept(sd,(struct sockaddr*)&client,&client_len);
        i=recv(new_sd,&c,1,0);
        j=0;
        while((i>0) && (c!='*'))
            {
            nomefile[j]=c;
            j++;
            i=recv(new_sd,&c,1,0);
            }
        nomefile[j]='\0';
        punt=fopen(nomefile, "r");
        fscanf(punt,"%c",&c);
        while(!feof(punt))
            {
            send(new_sd,&c,1,0);
            fscanf(punt,"%c",&c);
            }
        fclose(punt);
        close(new_sd);
        }
    }

sono anke disposto a fare il dual boot, ma dovrei svuotare un po' D: e fare un'altra partizione... e credo che faro' cosi'. Ke linux scarico pero' e che compilatore c/c++
PacManZ è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2006, 11:16   #14
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da PacManZ
sono anke disposto a fare il dual boot, ma dovrei svuotare un po' D: e fare un'altra partizione... e credo che faro' cosi'. Ke linux scarico pero' e che compilatore c/c++
Open SuSE è piuttosto facile da installare e gestire per un principiante. Per il compilatore su linux c'è gcc che va benissimo ed è gia incluso.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2006, 11:17   #15
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da PacManZ
il server crasha dandomi un errore di segmentazione (accede a memoria non sua?)

Codice:
#include <stdio.h>
#include <winsock2.h>
#define PORT 4000
#define MAXC 15

void main(void)
    {
    int winDLLstart(){
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested = MAKEWORD(2, 0);
    err = WSAStartup(wVersionRequested, &wsaData);
    return(err);
    } 
    struct sockaddr_in server,client;
    int sd,new_sd,errore,i,j,client_len;
    char c,nomefile[100];
    FILE *punt;
    server.sin_family=AF_INET;
    server.sin_port=htons((u_short)PORT);
    server.sin_addr.s_addr=INADDR_ANY;
    sd=socket(AF_INET,SOCK_STREAM,0);
    bind(sd,(struct sockaddr*)&server,sizeof(server));
    listen(sd,MAXC);
    while(1)
        {
        new_sd=accept(sd,(struct sockaddr*)&client,&client_len);
        i=recv(new_sd,&c,1,0);
        j=0;
        while((i>0) && (c!='*'))
            {
            nomefile[j]=c;
            j++;
            i=recv(new_sd,&c,1,0);
            }
        nomefile[j]='\0';
        punt=fopen(nomefile, "r");
        fscanf(punt,"%c",&c);
        while(!feof(punt))
            {
            send(new_sd,&c,1,0);
            fscanf(punt,"%c",&c);
            }
        fclose(punt);
        close(new_sd);
        }
    }

sono anke disposto a fare il dual boot, ma dovrei svuotare un po' D: e fare un'altra partizione... e credo che faro' cosi'. Ke linux scarico pero' e che compilatore c/c++
x il momento potresti anche usare una distribuzione live (knoppix è la più diffusa) e poi salvare i dati su un disco/penna usb...
come compilatore c'è gcc (è da shell) e dovrebbe essere già pronto all'uso
ciao
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2006, 13:42   #16
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da VICIUS
Open SuSE è piuttosto facile da installare e gestire per un principiante. Per il compilatore su linux c'è gcc che va benissimo ed è gia incluso.

ciao
io per fare un esame universitario ho installato Fedora Core 4 su VMWare Workstation e devo dire che mi ci son trovato benissimo: installazione semplicissima, poi ho scelto GNOME (era la scelta di default ma l'avrei scelta comunque perché DanieleC88 insisteva a consigliarmela ), tutto parte, tutto a posto, tutto regolare; insomma non posso lamentarmi, mi stava quasi quasi iniziando a venire voglia di diventare un guru di Linux dopo esserlo stato di Windows NT
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2006, 13:50   #17
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da 71104
io per fare un esame universitario ho installato Fedora Core 4 su VMWare Workstation e devo dire che mi ci son trovato benissimo: installazione semplicissima, poi ho scelto GNOME (era la scelta di default ma l'avrei scelta comunque perché DanieleC88 insisteva a consigliarmela ), tutto parte, tutto a posto, tutto regolare; insomma non posso lamentarmi, mi stava quasi quasi iniziando a venire voglia di diventare un guru di Linux dopo esserlo stato di Windows NT
Si so quanto può diventare insistente daniele
Cmq. se ti piace smanettare e programmare Linux è sicuramente meglio di Windows. Puoi mettere le mani al codice di tutto il sistema fino ad arrivare ai driver e il kernel.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2006, 16:06   #18
Mixmar
Senior Member
 
L'Avatar di Mixmar
 
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
Quote:
Originariamente inviato da 71104
[CUT] se proprio non vuoi fare il dual boot (e ti capisco) installati VMWare Workstation (se non erro ne esiste una versione gratis).
VMWare Workstation non è gratuito, ma c'è una versione di prova per 30 giorni; alternativamente, è possibile usare VMWare Player, che è gratuito (è uguale alla Workstation, accetta le stesse macchine virtuali, ma non si possono creare macchine nuove nè modificare i parametri di quelle esistenti). Per utilizzare macchine Linux, va molto bene poichè trovate sullo stesso sito della VMWare delle macchine già pronte: inoltre esiste una communità di appassionati che ne ha create diverse configurate per molti scopi diversi.

In sintesi: basta scaricare e lanciare il player...
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur
Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N
Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN
Mixmar è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Missione Artemis II diretta verso la Lun...
Toy Story 5 arriva al cinema: è l...
Intel cambia rotta su Linux? Nuove assun...
Samsung aggiorna Bixby con One UI 8.5: p...
L'Etiopia vieta le auto a combustione: a...
Pirateria audiovisiva: la Guardia di Fin...
Ubisoft conferma due nuovi Far Cry in sv...
Chi vincerà il Festival di Sanrem...
G42 e Cerebras portano in India un super...
Offerte aggiornate del weekend Amazon: 7...
4 MacBook Air in offerta e scende a 939€...
Chrome cambia il tuo modo di lavorare: o...
Minimo storico iPhone 17 su Amazon: 909€...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v