Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
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


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
AWS Transform si evolve: agenti IA per m...
I social network hanno stancato gli ital...
Star Citizen supera i 900 milioni di dol...
Netflix ha eliminato la funzione Cast pe...
L'IA è una bolla e scoppier&agrav...
Un rapporto collega i data center di Ama...
Troppa concorrenza per Cherry (quella de...
Entro il 2035 la Cina vuole costruire de...
Tineco in super sconto: ultimo giorno di...
La Cina creerà una costellazione ...
I veicoli elettrici emettono radiazioni ...
Stai per acquistare una PS5? Attento al ...
iPhone 17 Pro Max finalmente disponibile...
Apple, Sony, Bose, Beats, Sennheiser, CM...
Arriva il Raspberry Pi 5 da 1 GB, ma por...
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: 02:27.


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