Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-09-2013, 09:13   #1
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
[C/VB] perdita di pacchetti

ciao,
mi interessava capire quali sono le cause principali della perdita di pacchetti a livello applicativo. Il protocollo TCP/IP garantisce che tutti i pacchetti vengono inviati/ricevuti da due macchine in rete ma nel caso in cui una macchina client fatica ad elaborare i pacchetti in arrivo per ragioni a me ancora ignote, dove finiscono tali pacchetti?

Faccio un esempio:
ho due thread i quali inviano rispettivamente ogni 200 ms:

thread A
127 x 8 bit = 1016 bit
ogni bit è accompagnato da alcune informazioni utili a capire a chi appartiene tale bit, la lunghezza di ogi messaggio è quindi mediamente lunga 30 byte quindi:
1016 x 30 x 5 = 148,82 KB/s circa

thread B
4000 x 8 bit = 32000 bit
ogni bit è accompagnato da alcune informazioni utili a capire a chi appartiene tale bit, la lunghezza di ogi messaggio è quindi mediamente lunga 30 byte quindi:
32000 x 30 x 5 = 4687,5 KB/s circa


p.s.
ho editato e corretto i dati

Ultima modifica di misterx : 09-09-2013 alle 11:34.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 11:12   #2
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da misterx Guarda i messaggi
ciao,
mi interessava capire quali sono le cause principali della perdita di pacchetti a livello applicativo. Il protocollo TCP/IP garantisce che tutti i pacchetti vengono inviati/ricevuti da due macchine in rete ma nel caso in cui una macchina client fatica ad elaborare i pacchetti in arrivo per ragioni a me ancora ignote, dove finiscono tali pacchetti?
Che intendi a livello applicativo? a livello "applicazione" del modello tcp/ip? (lvl 5,6 e 7 osi) oppure a livello di trasporto?

Quote:
Originariamente inviato da misterx Guarda i messaggi
Faccio un esempio:
ho due thread i quali inviano rispettivamente ogni 200 ms:

thread A
127 x 8 bit x 3 = 3048 bit
ogni bit è accompagnato d alcune informazioni utili a capire a chi appartiene tale bit, la lunghezza di ogi messaggio è quindi mediamente lunga 30 byte quindi:
3048 x 30 = 89,29 KB circa

thread B
4000 x 8 bit x 3 = 96000 bit
ogni bit è accompagnato d alcune informazioni utili a capire a chi appartiene tale bit, la lunghezza di ogi messaggio è quindi mediamente lunga 30 byte quindi:
96000 x 30 = 2812,5 KB circa
Questa parte non mi è chiara, qual'è la domanda ed il nesso?
"ogni bit è accompagnato da alcune informazioni utili"
cioè altri bit??
un pò troppo overhead, non credi?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 11:24   #3
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
ciao,
siccome sto lavorando con le socket penso di trovarmi al livello 7 dove regnano ftp e compagnia bella

Mi sono accorto che con i miei conti sono stato poco chiaro; riassumendo ho nella pratica due cicli nidificati:

sorta di pseudocodice
Codice:
int c,d,e,f;
char msg[1024];

for(int byte=0; byte < 4000; byte++)
{
    for(int bit=0; bit<8;bit++) {
       sprintf(msg"%d, %d, %d, %d %d, %d",byte,bit,c,d,e,f);
       SendText(msg); 
       }
}
Sleep(200); // attende 200 ms prima di inviare i prossimi 'n' messaggi
dove msg è lungo mediamente 30 byte

Quindi: 4000 x 8 = 32000 byte ogni 200 ms, quindi ogni secondo:
32000 x 5 = 156,25 KB/s

Ultima modifica di misterx : 15-09-2013 alle 12:07.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 11:43   #4
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
ok, livello "applicazione" e usi le socket. Suppongo che tu stia usando SOCK_STREAM e non SOCK_DGRAM. Suppongo ancora che l'applicazione comunichi con un endpoint appartenente alla stessa LAN, così da escludere i problemi connessi ai router etc.
Allora puoi avere perdite di pacchetto per i seguenti motivi:

- la scheda di rete non riesce a smaltire i pacchetti in entrata abbastanza velocemente. (scenario quasi impossibile)

- il sistema operativo non riesce a smaltire i buffer del kernel (anche qui difficile che accada)

- lo switch non riesce a smaltire il traffico, i suoi buffer sono pieni.

in tutti questi casi i pacchetti vengono droppati, in tutti i casi il tcp/ip provvede al recovery. In più c'è da dire che le trame non vengono inviate dalla scheda di rete con la velocità con cui tu invii pacchetti tramite codice, il sistema operatvo intercede praticamente sempre. E poi esiste anche la "finestra" del tcp.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 11:58   #5
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
ok, livello "applicazione" e usi le socket. Suppongo che tu stia usando SOCK_STREAM e non SOCK_DGRAM. Suppongo ancora che l'applicazione comunichi con un endpoint appartenente alla stessa LAN, così da escludere i problemi connessi ai router etc.
Allora puoi avere perdite di pacchetto per i seguenti motivi:

- la scheda di rete non riesce a smaltire i pacchetti in entrata abbastanza velocemente. (scenario quasi impossibile)

- il sistema operativo non riesce a smaltire i buffer del kernel (anche qui difficile che accada)

- lo switch non riesce a smaltire il traffico, i suoi buffer sono pieni.

in tutti questi casi i pacchetti vengono droppati, in tutti i casi il tcp/ip provvede al recovery. In più c'è da dire che le trame non vengono inviate dalla scheda di rete con la velocità con cui tu invii pacchetti tramite codice, il sistema operatvo intercede praticamente sempre. E poi esiste anche la "finestra" del tcp.
si, sto usando le socket; l'applicativo client e server girano sulla stessa macchina, quindi nessuno switch o router a complicare le cose. Il server riceve dati da una macchina via ethernet direttamente connessa il quale, una volta ricevuti, li impacchetta e li invia all'applicativo client scritto in visual basic.
Ho notato però che i pacchetti ricevuti dal client, a volte sono lunghi 1460 byte, ed a volte solo 1 byte. Ogni pacchetto ricevuto dal client scatena un evento; sembra quasi che siano i troppi eventi a causare la perdita di pacchetti e quindi vengono scartati.

Ho notato anche che se porto il tempo da 200 ms a 50 ms l'applicativo in VB non è più governabile; potrebbe essere anche un limite del linguaggio, anche se ho più di qualche dubbio?

Considerando la relativa quantità di dati che invio al client a mio avviso dovrebbe funzionare tutto tranquillamente.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 12:07   #6
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
non conosco affatto vb, ma forse è un problema di applicazione.
se scateni un evento per pacchetti di un byte è ovvio che carichi parecchio l'applicazione così da non riuscire a star dietro ai pacchetti ricevuti. Ad ogni modo, a livello di codice, se ovviamente non fai errori, non hai alcuna perdita. Puoi comunque causarla ai buffer del kernel, scheda di rete etc.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 12:11   #7
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
non conosco affatto vb, ma forse è un problema di applicazione.
se scateni un evento per pacchetti di un byte è ovvio che carichi parecchio l'applicazione così da non riuscire a star dietro ai pacchetti ricevuti. Ad ogni modo, a livello di codice, se ovviamente non fai errori, non hai alcuna perdita. Puoi comunque causarla ai buffer del kernel, scheda di rete etc.

però temo che i pacchetti da 1 byte vengano deciso dal sistema operativo in quanto io a livello applicativo invio messaggi completi.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 12:17   #8
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da misterx Guarda i messaggi
però temo che i pacchetti da 1 byte vengano deciso dal sistema operativo in quanto io a livello applicativo invio messaggi completi.
non so, mi pare proprio strano. Di solito capita che crei ed invii un pacchetto troppo piccolo che il SO aspetta ad inviarlo e lo unisce ad altri.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 14:03   #9
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
non so, mi pare proprio strano. Di solito capita che crei ed invii un pacchetto troppo piccolo che il SO aspetta ad inviarlo e lo unisce ad altri.
sto indagando e pare che il problema sia lato server.
Ho del tutto tralasciato il fatto di verificare quanti dati sono stati realmente inviati attraverso la SendText().
La documentazione dice che è possibile capire quanti dati sono stati inviati ma non mi è ancora chiaro come gestire il problema.

Per lo sviluppo uso Borland builder.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 15:05   #10
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
se vuoi un consiglio spassionato, apri 2 istanze di wireshark e cattura il traffico del server e del client, così puoi vedere esattamente cosa sta succedendo.

Cos'è SendText()?l'hai scritta tu?pensavo fosse una funzione di libreria ma non la trovo in rete.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 15:18   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
se vuoi un consiglio spassionato, apri 2 istanze di wireshark e cattura il traffico del server e del client, così puoi vedere esattamente cosa sta succedendo.

Cos'è SendText()?l'hai scritta tu?pensavo fosse una funzione di libreria ma non la trovo in rete.
SendText() è un metodo di un componente di Borland.

Ho provato come suggerito dalla lettura della documentazione una cosa del tipo:

Codice:
int test;
test = SendText(buffer); // lunghezza dei dati inviati

if(test < strlen(buffer)) VisualizzaMessaggio("Problema");
dopo centinaia di migliaia di invii l'if non è mai vero, il che significa che viene inviato tutto correttamente. Ho scoperto che di default le socket sono del tipo bloccante.

Ultima modifica di misterx : 09-09-2013 alle 15:36.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 21:13   #12
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da misterx Guarda i messaggi
SendText() è un metodo di un componente di Borland.

Ho provato come suggerito dalla lettura della documentazione una cosa del tipo:

Codice:
int test;
test = SendText(buffer); // lunghezza dei dati inviati

if(test < strlen(buffer)) VisualizzaMessaggio("Problema");
dopo centinaia di migliaia di invii l'if non è mai vero, il che significa che viene inviato tutto correttamente. Ho scoperto che di default le socket sono del tipo bloccante.
Guarda, insisto nel consigliarti uno sniffer di rete per testare l'applicazione, da cui riesci anche a vedere il numero di pacchetti inviati (bastano una manciata di messaggi, non ne servono centinaia) e come il SO. li raggruppa. Ricorda che non è vero che ad ogni chiamata a send() corrisponde un pacchetto.
Per il resto non so autarti, non conosco VB, aspettiamo che passa qualcuno ferrato.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2013, 22:05   #13
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Guarda, insisto nel consigliarti uno sniffer di rete per testare l'applicazione, da cui riesci anche a vedere il numero di pacchetti inviati (bastano una manciata di messaggi, non ne servono centinaia) e come il SO. li raggruppa. Ricorda che non è vero che ad ogni chiamata a send() corrisponde un pacchetto.
Per il resto non so autarti, non conosco VB, aspettiamo che passa qualcuno ferrato.
grazie, è una soluzione che farò domani anche se mi crea un problema in quanto dovrei installare lo sniffer su una macchina remota.

Quello che dici lo avevo notato, avevo provato a contare ogni send lato server ed ogni gettext lato client ed ho notato che non esiste un rapporto 1:1.
Ora stavo leggendo anche che la SendText() ritorna il numero di caratteri che è riuscita a scrivere sulla socket, per questo motivo avevo effettuato il test sopra. Mi è parso anche di capire che sto usando una socket bloccante.

Comunque domani provo a sniffare quanto arriva sulla scheda del client; grazie ancora. Se non ricordo male wireshark esiste anche in versione portable.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2013, 18:21   #14
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
rettifico, avendo poca destrezza con l'uso dei componenti di bcb ho scoperto che stavo usando il componente TServerSocket in modalità NON bloccante ed in questo modo usando Putty ad esempio, perdevo dati.
Dopo aver settato la socket bloccante i dati arrivano tutti.

Anche dopo aver letto diversi articoli in rete non mi è del tutto chiara la differenza tra socket bloccante e non.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-09-2013, 01:20   #15
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da misterx Guarda i messaggi
rettifico, avendo poca destrezza con l'uso dei componenti di bcb ho scoperto che stavo usando il componente TServerSocket in modalità NON bloccante ed in questo modo usando Putty ad esempio, perdevo dati.
Dopo aver settato la socket bloccante i dati arrivano tutti.

Anche dopo aver letto diversi articoli in rete non mi è del tutto chiara la differenza tra socket bloccante e non.
Bloccante e non si riferisce alla funzione di lettura dei dati dalla socket (read).
Quando è bloccante (in genere è il comportamento di default) tale chiamata a funzione sospende l'esecuzione del programma finchè non sono stati ricevuti dati (quanti dipende dal SO) in ingresso sulla socket.
Non bloccante vuol dire che la funzione ritorna immediatamente, sia nel caso in cui sono stati letti dei dati sia che non sia arrivato niente. Anzi, in generale, i dati devono ancora arrivare quando la funzione ritorna. Questa modalità viene utilizzata in applicazioni parallele dove il controllo è critico.

Usa la socket bloccante
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 11-09-2013, 06:56   #16
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Bloccante e non si riferisce alla funzione di lettura dei dati dalla socket (read).
Quando è bloccante (in genere è il comportamento di default) tale chiamata a funzione sospende l'esecuzione del programma finchè non sono stati ricevuti dati (quanti dipende dal SO) in ingresso sulla socket.
Non bloccante vuol dire che la funzione ritorna immediatamente, sia nel caso in cui sono stati letti dei dati sia che non sia arrivato niente. Anzi, in generale, i dati devono ancora arrivare quando la funzione ritorna. Questa modalità viene utilizzata in applicazioni parallele dove il controllo è critico.

Usa la socket bloccante
nel mio caso specifico però mi è ancora poco chiaro. Ho un processo server nel quale ho implementato un thread che produce dati. Tale processo server rimane in ascolto su una certa porta; nel momeno in cui un client si collega al server, questo inizia ad impacchettare ed inviare dati. Per l'invio uso la funzione SendText() la quale consente, attraverso un valore di ritorno, di tenere sotto controllo il numero di byte inviati per ogni chiamata della stessa. Non è mai accaduto che il numero di byte inviati sia inferiore alla dimensione del buffer che io passo a tale funzione, questo mi portava a pensare che il mio processo server inviasse sempre al client tutti i dati presenti nel buffer ed invece non era così.
Settando la proprietà bloccante le cose sembrano essersi sistemate ma rimane per me ancora un mistero.

Essendo il server implementato attraverso un thread mi è chiaro che a livello di interfaccia non mi accorgo che il codice in esso viene bloccato sino alla ultimazione della SendText(). Ho letto ogni tipo di manuale di BCB ed ancora non ne sono venuto a capo, mi piacerebbe riuscire a trattare anche la socket non bloccante.

ciao
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2013, 18:11   #17
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
oggi ho sperimentato la limitazione delle socket bloccanti; se due client si collegano al server ed uno dei due si blocca per una qualche ragione, anche all'altro client non arrivano più dati
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2013, 19:33   #18
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da misterx Guarda i messaggi
oggi ho sperimentato la limitazione delle socket bloccanti; se due client si collegano al server ed uno dei due si blocca per una qualche ragione, anche all'altro client non arrivano più dati
Se si blocca il server! scusa ma stai usando un server multithread, giusto?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2013, 20:21   #19
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3739
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Se si blocca il server! scusa ma stai usando un server multithread, giusto?
il server implementa un thread che cicla all'infinito. Quando un client si collega riceve i pacchetti dallo stesso thread.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 13-09-2013, 23:49   #20
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da misterx Guarda i messaggi
il server implementa un thread che cicla all'infinito. Quando un client si collega riceve i pacchetti dallo stesso thread.
A me sta cosa non torna. Guarda, non ci metterei la mano sul fuoco, ma mi sembra che non funzioni così. Cerco di spiegarti quello che credo sia il funzionamento:

se il server usa un solo thread (quello principale del processo) si bloccherà sulla accept() in attesa di un client. Quando un client si connette, il server "ritorna" dalla accept e comincia la comunicazione. Anche utilizzando la solita struttura con il ciclo infinito:

Codice:
int client = -1;
while (client = accept(server, (struct sockaddr *) &address, &address_len)) != -1) 
{
      ... tuo protocollo
}
quello che succede è che di client ne viene servito solo uno alla volta, gli altri si mettono in coda, coda lunga in funzione del secondo parametro della listen() e del sistema operativo in uso.

In sintesi 2 o più client senza server multithread non possono essere serviti contemporaneamente.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
La famiglia Xiaomi 17 sta per registrare...
Nuove auto elettriche che vedremo sul me...
E-bike illegali, a Verona il più ...
Quali sono i giochi più venduti su Steam...
HONOR sta per lanciare un nuovo smartpho...
Jared Isaacman sarà alla guida de...
Il Tesla Cybertruck non arriverà ...
Xiaomi Watch 5 è ufficiale: architettura...
CD Projekt vende GOG: il co-fondatore Mi...
Il meglio di Amazon in 26 prodotti, aggi...
L'Europa fa retromarcia sulle pompe di c...
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: 16:30.


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