Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-02-2009, 17:57   #1
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
[C++] Eseguire un "refresh" in background

Ciao, ho realizzato un programma che si interfaccia con il router usando le winsock e la porta telnet. Ho un problema: dopo un certo tempo di inattività il router chiude la connessione. Come faccio per mettere un refresh ad intervalli regolari mentre il programma continua le sue funzioni?

Come refresh mi basta l'invio di un pwd.
__________________
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-02-2009, 18:54   #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
Compilatore ? Librerie usate ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2009, 19:56   #3
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Il compilatore è Dev-Cpp (Vecchio, stravecchio, abbandonato e ancora vecchio, lo so, ma è quello che usiamo a scuola)
Le librerie sono:
#include <iostream>
#include <conio2.h>
#include <winsock.h>
__________________
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 23-02-2009, 19:06   #4
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Quindi?
__________________
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 23-02-2009, 19:54   #5
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
Spiega meglio cosa ti serve in particolare. Cosa ti manca per inviare un pwd ad intervalli regolari ? Usi i thread ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2009, 19:59   #6
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Quote:
Originariamente inviato da cionci Guarda i messaggi
Spiega meglio cosa ti serve in particolare. Cosa ti manca per inviare un pwd ad intervalli regolari ? Usi i thread ?
No, quello che dovrei fare è proprio un thread, il mio è un programma lineare.
Ad intervalli di (esempio) 2 minuti, se non c'è attività nel programma, deve inviare un "pwd\n" senza però interrompere il resto del programma. Cioè l'utente deve sempre poter interagire.
__________________
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 23-02-2009, 20:06   #7
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
Ok, allora puoi creare un thread con CreateThread oppure puoi creare un timer con SetTimer. Magari puoi creare un timer che lancia un thread, forse è la soluzione migliore
Ogni volta che l'utente esegue un comando usi KillTimer per uccidere il timer ed inserirne uno nuovo.
http://msdn.microsoft.com/en-us/library/ms644906.aspx
http://msdn.microsoft.com/en-us/libr...53(VS.85).aspx
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2009, 20:27   #8
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Perfetto, è quello che cercavo. Ora provo a capire come funzionano queste funzioni, ma non so a che punto riesco ad arrivare... Mi sembrano abbastanza complicate...

Comunque diciamo che posso fare a meno di killare il timer. L'importante è che mentre viene eseguito il pwd e lo svuotamento della cache della winsock il programma principale non faccia operazioni sulla rete. Devo vedere un po' come fare...
__________________
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 23-02-2009, 20:29   #9
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
Fai prima a killare il timer, te lo assicuro.
Cerca con il nome della funzione, troverai sicuramente degli esempi.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2009, 20:30   #10
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
Tanto per chiarire: quelle che ti ho dato sono API Win32...non codice C standard
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2009, 20:32   #11
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Uhm sennò stavo pensando di cambiare il comando da dargli.
Il mio problema è che leggo ciò che il router risponde per mostrarlo a schermo o per analizzare il tipo di risposta. Se mentre faccio un'operazione del genere mi parte il pwd la cache della winsock comprenderà la risposta del comando inviato dal thread principale e quella del pwd.
Se io però metto "./\n", non dovrei avere risposta. No?

EDIT:
Come funziona il timer? Cioè come va messo? E' tipo Sleep()?
__________________
The Dark Side of The MODD
Il mio album su Flickr
Linux User #479003

Ultima modifica di MrModd : 23-02-2009 alle 20:39.
MrModd è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2009, 20:38   #12
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
Non ho capito cosa intendi sinceramente Perché chiami in causa la cache ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2009, 20:41   #13
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Scusa intendevo buffer: ciò che recv() scrive su variabile. Se non uso questa funzione si accodano tutte le risposte del server e ciò non va bene. Devo svuotarla prima del pwd.


EDIT: Ci sto capendo qualcosa. Ora ci giocherello un po' e domani ti faccio sapere a che punto sto.
__________________
The Dark Side of The MODD
Il mio album su Flickr
Linux User #479003

Ultima modifica di MrModd : 23-02-2009 alle 20:52.
MrModd è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2009, 17:00   #14
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Il thread ora funziona egregiamente (tranne un problema che mi da se lo creo da una funzione diversa da main) però non ho capito come si usa SetTimer().

EDIT: Ho trovato un'alternativa molto più semplice ed elegante al SetTimer(): SuspendThread() e ResumeThread(). Tra l'altro è anche molto più semplice da gestire; con SetTimer() avrei problemi con le variabili, dato che il timer è avviato in una funzione e il punto da cui dovrei eliminarlo è in un'altra funzione.


EDIT2:
Una domanda. Su questo esempio a che serve tutto ciò che riguarda l'array pDataArray[MAX_THREADS]?
Ho provato ad eliminarlo e funziona lo stesso. Se è inutile mi libererebbe un po' di righe di codice.
__________________
The Dark Side of The MODD
Il mio album su Flickr
Linux User #479003

Ultima modifica di MrModd : 24-02-2009 alle 19:16.
MrModd è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2009, 20:37   #15
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Up...
__________________
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 26-02-2009, 08:06   #16
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
EDIT2:
Una domanda. Su questo esempio a che serve tutto ciò che riguarda l'array pDataArray[MAX_THREADS]?
Ho provato ad eliminarlo e funziona lo stesso. Se è inutile mi libererebbe un po' di righe di codice.
A passare dati al thread. Nell'esempio gli viene passato il suo indice ed un altro dato di prova. Se dovessi raccogliere i risultati di una elaborazione sarebbe l'ideale, invece di dover lavorare su variabile condivise.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2009, 14:17   #17
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Ok, quindi siccome non devo trasferire dati da thread a thread lo posso eliminare. Posso risparmiare qualche riga di codice.

Grazie per l'aiuto!
Ciao.
__________________
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 26-02-2009, 14:19   #18
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
Non da thread a thread, ma da chiamante a thread.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2009, 14:31   #19
MrModd
Senior Member
 
L'Avatar di MrModd
 
Iscritto dal: Apr 2007
Messaggi: 924
Quote:
Originariamente inviato da cionci Guarda i messaggi
Non da thread a thread, ma da chiamante a thread.
Ah beh comunque non mi serve.
Giusto per curiosità, è possibile trasferire dati da thread a thread?
__________________
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 26-02-2009, 14:33   #20
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
Sì, ma devi usare della memoria condivisa e tecniche per la mutua esclusione.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
SpaceX sta provando le piastrelle isolan...
Il National Reconnaissance Office statun...
Volkswagen avvia la produzione su CEA: c...
La crisi delle memorie non influenzer&ag...
MoM-z14 è la galassia scoperta da...
Da Sony nuovi display professionali dell...
Com'è fatta una delle e-bike pi&u...
iPhone 16 domina il 2025: ecco la classi...
Huawei a supporto delle startup: potenzi...
Iliad è il miglior operatore di l...
Le pompe di calore parlano italiano: Bon...
Moltbot non è solo un chatbot: ag...
Sinner e Alcaraz fermati dall'arbitro: i...
L'audio-video professionale arriva a MIR...
Musk fa i complimenti alla Cina: nel set...
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: 21:32.


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