Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Mic Mini 2: audio 48 kHz / 24-bit e protocollo OsmoAudio sotto i 100 Euro
DJI Mic Mini 2: audio 48 kHz / 24-bit e protocollo OsmoAudio sotto i 100 Euro
DJI presenta Mic Mini 2, un sistema microfonico wireless ultra-compatto progettato per democratizzare l'audio di alta qualità nella fascia entry-level. Con un peso di soli 11 grammi per il trasmettitore elimina i fastidi tipici dei modelli più pesanti sui vestiti. Nonostante la miniaturizzazione Mic Mini 2 offre prestazioni tecniche di rilievo: registrazione omnidirezionale a 48 kHz/24-bit, tre preset vocali (Regular, Bright, Rich) e un sistema di cancellazione attiva del rumore a due livelli.
Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico
Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico
Motorola propone in fascia media il nuovo Moto G77 5G, uno smartphone che punta sul display AMOLED da 1.5K a 120Hz, e sulla fotocamera da 108 MP con stabilizzazione ottica per affrontare la fascia media. Il tutto insieme a una batteria da 5200mAh in soli 7,3 millimetri di spessore, con una scocca certificata con standard militari
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI ha appena ufficializzato la serie Lito, la sua nuova gamma di droni entry-level destinata a chi si avvicina per la prima volta alla fotografia aerea. Al centro dell'annuncio ci sono due modelli ben distinti per fascia di prezzo e specifiche tecniche: DJI Lito 1 e DJI Lito X1. Entrambi si collocano sotto la soglia regolamentare dei 249 grammi, che permette di volare con requisiti burocratici più semplici rispetto ai droni più pesanti.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-11-2008, 19:22   #1
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
[C++/C] Problemi nell'uso delle Winsock

Salve gente,
ho un problema che non riesco a risolvere...
sto usando su un programma fgetc() (della libreria standard del C) e send() (delle winsock).
C'è questo problema:
io dovrei prendere un carattere da un file con "variabile=fgetc(file);" e inviare il carattere attraverso "send(socket, variabile, 1,0)". Il problema è che sono due tipi di variabili differenti: fgetc() salva su una char, mentre send() vuole in ingresso una const char*.
Come fò?

Ho provato in questi modi:
Codice:
send(socket, &((const char)variabile),1,0);
send(socket, &((const char*)variabile),1,0);
send(socket, ((const char*)variabile),1,0);
send(socket, variabile,1,0);
ma niente, davano errore.


Poi mi spieghereste cosa sono le variabili con puntatore e quando si usa l'asterisco e quando la & prima della variabile?
__________________
The Dark Side of The MODD
Il mio album su Flickr
Linux User #479003
MrModd è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 19:30   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
L'unica che non hai provato, cioè questa:

send(socket, &variabile , 1, 0);

Spiegarti cosa è l'operatore di dereference (&) è semplice, ottieni l'indirizzo della variabile alla sua destra.
Spiegarti invece l'operatore *, le variabili puntatore e i mille usi che se ne vuole fare credo che ti convenga leggerlo su un libro.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 19:56   #3
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Quote:
Originariamente inviato da cionci Guarda i messaggi
L'unica che non hai provato, cioè questa:

send(socket, &variabile , 1, 0);

Spiegarti cosa è l'operatore di dereference (&) è semplice, ottieni l'indirizzo della variabile alla sua destra.
Spiegarti invece l'operatore *, le variabili puntatore e i mille usi che se ne vuole fare credo che ti convenga leggerlo su un libro.
e non funziona comunque...
Io ho questa struttura:
Codice:
char variabile;
do
{
  variabile=fgetc(file);
  send(socket, &file,1,0);
  fputs(&tmp, log);
}
while (variabile==10)
Ma non mi esce mai dal ciclo e il file log si riempie in pochi secondi di caratteri che non esistono in "file".

Riguardo alla &, cosa significa ottenere l'indirizzo? Non vado a chiede alla variabile cosa contiene ma vado dove è memorizzata e me la leggo da solo?
E poi & e * sono collegati?
__________________
The Dark Side of The MODD
Il mio album su Flickr
Linux User #479003
MrModd è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 01:53   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da MrModd Guarda i messaggi
e non funziona comunque...
Io ho questa struttura:
Codice:
char variabile;
do
{
  variabile=fgetc(file);
  send(socket, &file,1,0);
  fputs(&tmp, log);
}
while (variabile==10)
Ma non mi esce mai dal ciclo e il file log si riempie in pochi secondi di caratteri che non esistono in "file".
Ci credo, è sbagliato

send(socket, &variabile,1,0);
fputc(tmp, log);

Con & ottieni appunto l'indirizzo dove è memorizzata la variabile. Una variabile puntatore serve appunto a contenere un indirizzo. Comunque te l'ho detto: sono cose che non si possono improvvisare, per spiegare l'utilizzo dei puntatori servono due capitoli di un libro
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 12:09   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Sì, fidati di quel che ti ha detto Cionci: quando un neofita inizia lo studio della programmazione da zero, e si trova davanti per la prima volta il concetto di puntatore e i vari usi che se ne fanno, di solito ci mette un bel po' a inghiottirlo e digerirlo per bene.

E' una cosa fondamentale sapere cosa sono e come e quando e perchè si usano i puntatori: non puoi raccattare una parvenza di conoscenza qui, se la cosa ti interessa sul serio, è necessario un buon libro.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 19:20   #6
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Oki, per i puntatori leggerò qualcosa di più esteso, ma il programma continua a funzionare...
Si blocca sempre lì, scrive tante "ÿ" nel file ma non va avanti.
__________________
The Dark Side of The MODD
Il mio album su Flickr
Linux User #479003
MrModd è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 20:14   #7
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Ho individuato l'errore (penso):
il fatto è che io dovrei leggere il file fino a che non c'è un ritorno a capo, ma il ciclo condizionale non lo vede.
Io ho messo while (variabile!=10) perchè 10 è il valore decimale per in ritorno a capo, ma il ciclo continua lo stesso.

Vi faccio vedere meglio com'è questo pezzo di programma:
Codice:
rewind(file);
while (controllo==false || variabile!=EOF)
{
  variabile=fgetc(file);
  if (variabile==10)   //questa condizione dovrebbe accadere se c'è un ritorno a capo
  {
    variabile=fgetc(file);
    if (variabile==10) controllo==true;
  }
}
controllo==false;
while (controllo==false || variabile!=EOF)
{
  variabile=fgetc(file);
  if (variabile==10)
  {
    variabile=fgetc(file);
    if (variabile=='a')
    {
      variabile=fgetc(file);
      if (variabile==10) controllo=true;
    }
  }
}
Da qui quindi io dovrei prendere il file e leggerlo finchè non trovo una riga vuota. A questo punto è pronto per leggere il resto del file fino a che non trova in una riga il carattere "a" e una riga vuota.
Poi nel caso non li trova il ciclo dovrebbe comunque finire perchè raggiunge l'EOF. Il problema è che scorre in entrambi i cicli tutto il file.

Avete capito più o meno il problema?
__________________
The Dark Side of The MODD
Il mio album su Flickr
Linux User #479003
MrModd è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2008, 08:10   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
while (controllo==false && variabile!=EOF)

Sta dentro il while fino a quanto una delle due condizioni non è verificata. Con l'or sta dentro il while fino a quando entrambe le condizioni non sono verificate.
Se ci spieghi cosa stai cercando di fare possiamo dirti come farlo in poche linee con il C++.

Metti così: variabile == '\n'
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2008, 17:44   #9
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Oh ecco, ho risolto finalmente, oltre a quell'errore di aver messo || al posto di && avevo fatto un errore di sintassi: avendo trasformato un do - while in un while, mi ero scordato di togliere il ; alla fine della condizione...
Comunque il programma è un client per l'invio della posta molto rudimentale: su un file imposto, seguendo uno schema ben preciso, tutti i dati necessari per l'invio dell'email e poi, dopo una riga vuota, il corpo del messaggio comprensivo di header. Il programma invia l'email e salva un log in un altro file.
Tutto qui, ma per me è un gran passo.
Ora devo solo fare delle modifiche per introdurre un controllo negli errori che da il server.
__________________
The Dark Side of The MODD
Il mio album su Flickr
Linux User #479003
MrModd è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Mic Mini 2: audio 48 kHz / 24-bit e protocollo OsmoAudio sotto i 100 Euro DJI Mic Mini 2: audio 48 kHz / 24-bit e protocol...
Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico Recensione Moto G77: display AMOLED e buona auto...
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla DJI Lito 1 e Lito X1 recensione: i nuovi droni p...
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi Sony World Photography Awards 2026: i premiati, ...
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince Una settimana con Hyundai Ioniq 5 N-Line: divert...
Nintendo e Illumination preparano un nuo...
Arlo, nuove offerte sulle telecamere di ...
Google Gemini attiva la Memoria in Itali...
Da VMware a Proxmox, come AXOL ha suppor...
Meta nei guai con l'UE: perché Facebook ...
Blender ha un nuovo sponsor da €240.000 ...
Il Philips Bodygroom Serie 7000 a 64€ (e...
Valanga di novità da Fanatec, anche per ...
'DLSS' e 'Fram Gen' anche per il Samsung...
Claude si integra con Blender e Adobe: n...
Agente AI cancella l'intero database di ...
Il ritorno del Commodore 64: il nuovo C6...
Google Gemini entra nei sistemi classifi...
Nuovi MacBook Pro 14,2" con chip M5...
Configuratore Corsair FRAME, il punto di...
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: 11:19.


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