Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-05-2010, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 15: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, 16: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, 10: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


Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Addio desktop ingombranti: questo mostro...
La fame di memoria dell'AI non si fermer...
Instagram, nuove restrizioni per i teena...
LinkedIn introduce il controllo della ve...
Attacco a Magento: ecco come un'immagine...
Un nuovo State of Play potrebbe arrivare...
App IO e IT-Wallet: i 14enni potranno ac...
No Man's Sky introduce la Xeno Arena: un...
Distributed AI Hub: l'infrastruttura IA ...
MOUSE: P.I. For Hire mostra il suo lato ...
La doppia sentenza che complica il caso ...
Microsoft ce l'ha fatta! Windows 11 ha u...
Top 7 Amazon di oggi: crolla del 54% il ...
La Terra va verso gli 11,7 miliardi di a...
NVIDIA ribilancia la roadmap? Meno Hoppe...
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: 14:22.


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