Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
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


Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Tesla aggiorna il camion Semi, e sposta ...
Come funziona la carta Klarna: tre livel...
I Funko Pop potrebbero sparire per sempr...
Windows 98 in crash davanti a migliaia d...
Samsung Smart TV 85'' Neo QLED Mini LED ...
TikTok rafforza la sicurezza degli acqui...
Samsung Galaxy S25 Ultra 256 GB a ...
Sanzione ridotta per TIM: l'azienda paga...
DJI Osmo 360 in super offerta su Amazon:...
Moto Watch Fit con Moto AI a metà prezzo...
Batterie ibride plug-in: la classifica d...
Ayaneo Next 2 è ufficiale: presta...
Windows 11 26H1 è ufficiale, ma &...
Archive.is nel mirino: l'FBI vuole saper...
CMF by Nothing Buds 2a: le cuffie ANC co...
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: 12:35.


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