Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5 introduce Dynamic Multi Frame Generation e MFG 6X, permettendo fino a cinque frame generati per ogni frame renderizzato. I test su Cyberpunk 2077 e 007 First Light mostrano forti incrementi di FPS e riduzione della latenza su RTX 5090 Laptop. Migliorano fluidità, stabilità e qualità visiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2007, 15:04   #1
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Un semplice tunnel http

Devo far transitare il protocollo di due applicazioni tramite protocollo http, in modo da poter passare attraverso proxy. La mia idea è far aprire al client un canale con GET, dove il server imposta nella risposta un Content-Type: application/octet-stream e Transfer-Encoding: chunked, quindi procede ad inviare i dati nel formato previsto da questo transfer; il client apre un canale con POST e invia i dati nella stessa maniera.
Essendo alquanto ignorante della materia, chiedo:
- si può usare Transfer-Encoding: chunked con POST?
- sarebbe bello poter utilizzare la stessa connessione per inviare i dati sia in un verso che nell'altro. E' possibile? (da alcune prove che ho fatto, sembrerebbe di no)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:22   #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
Fammi capire devi ottenere un canale di comunicazione bidirezionale e, soprattutto, sempre aperto tramite HTTP ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:32   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da cionci Guarda i messaggi
Fammi capire devi ottenere un canale di comunicazione bidirezionale e, soprattutto, sempre aperto tramite HTTP ?
Sarebbe l'ottimo, ma posso fare i conti con quello che ho a disposizione. Il mio problema è che non ho sufficiente esperienza in questo campo per sapere cosa è supportato e cosa no.
Ho appena visto, ad esempio, che non posso fare una trasmissione "chunked" con POST o PUT. O, almeno, squid non la supporta. Riguardo il canale bidirezionale, mi sono messo l'anima in pace.

Se ne sai qualcosa sulle tecniche a disposizione, ogni consiglio è bene accetto.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:38   #4
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
ma devi farlo tu applicativamente?
usare un supporto esterno (tipo http://www.nocrew.org/software/httptunnel.html ) non è un'opzione?
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:41   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da kingv Guarda i messaggi
ma devi farlo tu applicativamente?
usare un supporto esterno (tipo http://www.nocrew.org/software/httptunnel.html ) non è un'opzione?
L'ho visto, non sembra idoneo al mio caso. Volevo implementare qualcosa di semplice a livello applicativo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:48   #6
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
Vediamo, me ne vengono in mente due:

- Sfrutti Java RMI ed il supporto tunnel HTTP (è realizzato tramite CGI) in modo da pacchettizzare i dati in chunk da inviare tramite oggetti RMI.
- Se entrambi gli endpoint sono dietro ad un proxy HTTP: ti crei una servlet che permetta riceve i dati a pacchetti (tramite POST) e specularmente invia i dati da trasmettere all'altra servlet. Ovviamente di fatto sono due connessioni HTTP separate.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:52   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da cionci Guarda i messaggi
Vediamo, me ne vengono in mente due:

- Sfrutti Java RMI ed il supporto tunnel HTTP (è realizzato tramite CGI) in modo da pacchettizzare i dati in chunk da inviare tramite oggetti RMI.
-ENOJAVA
Quote:
- Se entrambi gli endpoint sono dietro ad un proxy HTTP
No il lato server è pubblico

Più che utilizzare cose esistenti, volevo qualche dritta sul protocollo in se per implementare una soluzione semplice tagliata per il mio caso specifico. Il protocollo http in se non è complesso.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12

Ultima modifica di ilsensine : 20-03-2007 alle 16:54.
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:58   #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
Sul lato pratico...l'architettura esistente qual è ?

Server | Proxy <<<-->>> Client
Client | Proxy <<<-->>> Server

Suppongo la seconda, giusto ?
Il proxy è trasparente o non trasparente ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:01   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Da quello che ho visto fin'ora, la trasmissione s->c è facilmente realizzabile tramite un GET e una risposta chunked. Questo mi offre la massima flessibilità sui dati trasmessi. La parte c->s è un pò più complicata, visto che non posso usare il trucco della trasmissione "chunked" devo usare un classico POST esplicitando il content length ed attendendo l'http ok di risposta. L'identificazione dei due canali come un unico strato di trasporto posso farla impostando un "fake cookie" nel GET, e rimandandolo indietro nel POST. Il cookie passa tranquillamente il proxy. Dovrebbe andare, credo...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:02   #10
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da cionci Guarda i messaggi
Sul lato pratico...l'architettura esistente qual è ?

Server | Proxy <<<-->>> Client
Client | Proxy <<<-->>> Server

Suppongo la seconda, giusto ?
Sì la seconda. Dovrebbe funzionare sia in modalità proxy trasparente che esplicito (posso configurare il client per uno dei due casi).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:19   #11
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 per favore qualche prova di questo tipo, a seconda del proxy dovrebbe funzionare.

Inizia la connessione in HTTP 1.1 in questo modo il proxy dovrebbe capire che deve lasciare aperta una connessione fino a quando uno degli endpoint non la chiude. Così puoi scambiarti dati continuamente con una sequenza POST dal client/risposta del server.
Dal Client invia una richiesta POST avente come destinazione il tuo server e nel body mettici i dati RAW (fregatene dell'encoding visto che è una cosa che dovrebbe riguardare solo il server di destinazione e il proxy possibilmente non dovrebbe metterci le mani). L'unica cosa consistente dovrebbe essere la dimensione dei dati da specificare nell'header.
Dal server rispondi con un header HTTP/1.1 200 (importante anche qui la dimensione dei dati) e gli ci butti dietro i dati di risposta in RAW.
Ovviamente il client non potrà inviare un POST di dimensione incgnita quindi stabilisci la dimensione massima da bufferizzare e quando il buffer è pieno trasmetti. Il server dovrà sempre rispondere ad una richiesta POST anche se non ha dati da trasmettere.
La connessione *dovrebbe* rimanere aperta quindi di fatto hai una connessione bidirezionale anche se devi pacchettizzare i dati.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:21   #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
Quote:
Originariamente inviato da ilsensine Guarda i messaggi
Da quello che ho visto fin'ora, la trasmissione s->c è facilmente realizzabile tramite un GET e una risposta chunked. Questo mi offre la massima flessibilità sui dati trasmessi. La parte c->s è un pò più complicata, visto che non posso usare il trucco della trasmissione "chunked" devo usare un classico POST esplicitando il content length ed attendendo l'http ok di risposta. L'identificazione dei due canali come un unico strato di trasporto posso farla impostando un "fake cookie" nel GET, e rimandandolo indietro nel POST. Il cookie passa tranquillamente il proxy. Dovrebbe andare, credo...
Io non andrei ad implementare il protocollo HTTP, ma "falsificherei" il protocollo in modo che venga riconosciuto dal proxy.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:23   #13
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Sto facendo proprio prove di questo tipo, dovrebbe funzionare. L'unica incognita è se il proxy decide di buttare giu spontaneamente una connessione keep alive. Sul secondo canale potrei anche tollerarlo tutto sommato, il canale iniziato con GET invece non dovrebbe cadere.

Sto facendo le prove con squid, che implementa solo l'http 1.0 (ma l'encoding chunked lo fa passare, questo è importante).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
La NASA sta provando il Divergent Deploy...
Fidanzarsi con l'IA non è cos&igr...
AI Overviews: quando il riassunto &egrav...
Il circuito segreto di Apple finisce a W...
Disastro Meta: l'azienda elimina il rico...
Google Gemini non va: centinaia di segna...
Neural Dawn mostra il futuro del gaming ...
Telegram torna su Apple Watch con un'app...
Da oggi si può acquistare Amazon ...
Windows 11 è più veloce: implementati il...
Ritornano gli auricolari con il cavo: Te...
Insta360 Luna Ultra: ecco il debutto del...
BOOX Go 6 Gen II ufficiale: ora si scriv...
BYD sfida Tesla con un piano da 2 miliar...
La corsa ai datacenter passa dalla stamp...
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: 18:29.


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