Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-05-2010, 15:19   #1
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
[java] invio di file tramite socket, salva i dati sul disco?

Salve, ho una curiosità su Java e la programmazione client-server. Ho un client e un server; dal client invio 2 file di testo, tramite le socket (quindi leggo il file tramite un programma che gira sul client, e invio i singoli byte del file) al server;

quest'ultimo salverà la sequenza di byte in 2 variabili stringa, e in seguito potrò accedere al "contenuto" del file usando soltanto quelle variabili. Facio un esempio sempice...se voglio creare un file di testo contenente il contenuto delle 2 variabili.

In questo pocesso di copia, i dati trasferiti dal client al server non verranno mai salvato sul disco, ma al massimo nella stessa area di memoria ram che il sistema stà riservando a java in quel momento. E' corretto come ragionamento???
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 15:28   #2
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...se travasi i byte nella stringa di volta in volta nulla viene scritto...consiglio l'uso di un buffer piu' efficente al posto della String...sopratutto se non conosci la dimensione del file di test da inviare/ricevere...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 15:28   #3
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
non ho capito niente, specialmente non ho capito cosa c'entrano i socket e perché i file di testo sono due, ma tieni presente che il sistema potrebbe decidere di mettere in swap il contenuto delle stringhe.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 15:37   #4
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
di norma (poi dipende dal SO) i dati vengono prima piazzati nel buffer del DMA della scheda di rete (se non utilizzi adattatori usb) e poi ricopiati nella variabile stringa del processo jvm. Parliamo di dati volatili, ma nulla impedisce al SO di paginare sul disco quelle locazioni, soprattutto se il sistema ha poca ram.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 15:46   #5
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Ok mi spiego meglio

Devo creare un'applicazione client server. Il client deve inviare 2 file A e B al server. Questi 2 file sono stati creati a partire da un certificato utente x509 .p12. Non vorrei inviare il file p12 al server, per evitare che qualcun altro possa copiarlo, e per fare in modo che quest'ultimo rimanga sempre in possesso del client, sulla sua macchina Per questo motivo io creo questi file A e B (creati tramite la funzione opensso di java mi pare) invio questi 2 file al client che creerà un terzo file a partire da questi 2.

Per inviare i dati dal client al server devo utilizzare le socket..o c'è qualche altro metodo??

Adesso, il client invia i byte del primo file al server, che li memorizza in un buffer (come mi è stato fatto notare, soluzione migliore ). Una volta riempito tutto il buffer lo salvo in una stringa (e faccio lo stesso anche per l'altro file).

Adesso, l'ultima operazione è creare il 3° file dai 2 che ho prelevato dal buffer.

La cosa principale è evitare che i 2 file prelevati dal client vengano salvati sulla memoria del server...ma al massimo restano nella ram e nelle variabili di java..

ho cercato di essere più chiaro possibile..altrimenti riscrivo
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 15:47   #6
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Come ragionamento no, in pratica nì.

Ci sono due motivi per cui il ragionamento non fila. Quello certo è che la memoria assegnata ad un processo potrebbe risiedere sul disco fisso. Il famigerato "swap" ne è un sintomo.

Quella ipotetica è una questione di contratti. Il socket delle librerie standard di Java è l'astrazione di una connessione di rete e il contratto di quell'astrazione dice grossomodo: mi connetto e ti consento di trasferire dati attraverso dei flussi.

Quel che capita ai dati tra durante l'invio non è specificato. Sarebbe perfettamente ammissibile ancorchè bizzarra un'implementazione di Socket il cui flusso usasse un pezzo del disco come tampone.

Il ragionamento è in parte valido per una specifica versione di Java. Data la disponibilità dei sorgenti uno può lecitamente affermare che nell'implementazione di Java OpenJDK 6 b19 la ricezione di dati attraverso dei Socket non comporti la scrittura di quei dati sul disco fisso da parte della piattaforma Java.

Resta sempre il problema dello swap.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 15:58   #7
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...ok...ma qui il problema non è piu' Java...ma tutta la struttura interessata nel trasferimento...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 16:40   #8
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Be' alla fine sì. Il discorso che vale per java.net.Socket vale anche per le sue controparti native.

Il fatto è che la preoccupazione che qualcosa non venga "fissato" sul disco fisso sa tanto di un problema di sicurezza e di sicurezza, come si dice, non se ne può fare "un po'", o si fa tutta o non si fa.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2010, 17:04   #9
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Si un po è un problema di sicurezza....Ora vi spiego tutto il problema.
l'utente per poter fare delle operazioni sul server, deve avere un certificato X509. Partendo da questo certificato, una volta inserita una password sua personale, si vengono a creare 2 file userkey.pem e usercert.pem

Una volta ottenuti questi 2 file, tramite un comando (che è possibile dare soltando dalla machina server) creo un file chiamato proxy..e grazie a questo proxy si riesce ad usare il sistema.

Adesso, io vorrei fare in modo che l'utente sulla sua machina avvii un programma che gli chiede di inserire la password e il percorso del certificato; in questo modo sulla sua machina sempre mi creo i file userkey.pem e usercert.pem, prendo questi file e tramite le socket li invio al server, che mi crea il proxy e poi "svuota" il contenuto delle variabili/buffer.

Per problemi di sicurezza appunto vorrei evitare di salvare il certificato sul server, cosi come le chiavi pem..ed è per questo che penso sia più sicuro che queste chiavi risiedano per pochi secondi in memoria ram (come contenuto di un buffer) piuttosto che come file nel server (a cui accedono molti utenti).

Correggetemi se il ragionamento è errato....prendere questo certificato p12 e salvarlo sul server, e da questo creare i file pem e infine il proxy, per poi eliminare il p12 e i pem, mi sembra un'operazione più "rischiosa"...
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2010, 11:22   #10
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
up
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
ESA presenta ASTRIS, per rendere pi&ugra...
Ryanair non utilizzerà Starlink s...
Prince of Persia Remake potrebbe essere ...
Fujifilm annuncia la nuova stampante ist...
Arriva Red Hat Enterprise Linux for NVID...
Il marchio Volkswagen Jetta torna, ma or...
L'odio verso Electronic Arts è sp...
HONOR Magic 8 Pro: promosso da DXOMARK m...
instax mini Evo Cinema: la nuova soluzio...
YouTube mette un freno agli Shorts: i ge...
Dreame L40 Ultra AE di nuovo a 499€ su A...
I consigli per l'upgrade del proprio PC:...
Il cloud per i criminali? Si chiamava Re...
SpaceX si aggiudica un contratto da 739 ...
Nuove analisi di Geotab: la ricarica fas...
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: 06:01.


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