Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-01-2009, 14:39   #1
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
[c] programma download http

questo codice prima richiede una pagina dal mio sito, poi prova a scaricare un filmato di megavideo... altervista mi risponde perfettamente, mentre megavideo non si fa sentire dopo che mando il mio GET lui non risponde, sta muto ... sto impazzendo...

grazie mille per l'aiuto

Codice:
#include <stdio.h> 
#include <winsock.h> 
#include <stdlib.h>
#include <string.h>
bool scarica(char *fileremoto,char *filelocale,char *host,char modalita);

int main(int argc, char *argv[]){

    scarica("/forum2/","a.txt","www.mamo139.altervista.org",'1');
    scarica("/files/4ce85b10a5de4f47ea02d653021d0b42/","a.txt","www785.megavideo.com",'1');

    getchar();

}	
	
bool scarica(char *fileremoto,char *filelocale,char *host,char modalita){
	FILE *fo; 
	struct sockaddr_in sock; 		//la struttura per il socket
	struct hostent ip; 		        //la struttura per l'indirizzo 
	bool header = true;
	bool invio = false;
	char ultimo_carattere = '\0';

	char msg_response[] = "\0";
	char modo[4];
	int s;
		
    //messaggio per il server...
    char msg_enter[600] = "GET ";
	char protocollo[] = " HTTP/1.1\n"; 
	char protocollo2[] = "Host: "; 
	char protocollo3[] = "\n"; 
	
	char dettagli1[] = "Keep-Alive: 300\n";  
	char dettagli2[] = "Connection: keep-alive";  
	
   	strcat(msg_enter,fileremoto); 
   	strcat(msg_enter,protocollo); 
    strcat(msg_enter,protocollo2); 
   	strcat(msg_enter,host); 
    strcat(msg_enter,protocollo3); 
   	
   	//strcat(msg_enter,dettagli1); //header
	//strcat(msg_enter,dettagli2);

   	strcat(msg_enter,"\n\n"); 

	strcpy(modo,(modalita == '1' ? "w+b" : "w"));
    fo=fopen(filelocale,modo); //creazione file

    //********* connessione *********//
   	WORD wVersion; 
	WSADATA wsaData;
	wVersion = MAKEWORD(2, 2);
	WSAStartup(wVersion, &wsaData); //winsock startup
	s = socket(AF_INET, SOCK_STREAM, 0);
	
	ip = *(gethostbyname(host)); //indirizzo
	memcpy(&sock.sin_addr, ip.h_addr, ip.h_length); //copia l'indirizzo nella struttura socket
	sock.sin_family = AF_INET; 
	sock.sin_port = htons(80); //porta

	
	connect(s, (struct sockaddr *)&sock, sizeof(sock)); //associa al socket s la struttura socket
	if (!s) {
 		printf("Connessione non riuscita!!");
 		getchar();
 		return false;
 	}	
        
    printf("Inviato al server:\n\n%s\n", msg_enter); 
	send(s, msg_enter, strlen(msg_enter) + 1, 0); //invia dati
	printf("Download in corso...\n\n");
        
    while(recv(s, msg_response, 1, 0) != 0) { 
 
    	// se sono finiti gli header stampa nel file
        if (!header) fprintf(fo,"%c",msg_response[0]);  
        else printf("%c",msg_response[0]);
        
        // se l'ultimo carattere è uguale a \r, quello attuale è uguale a \n
   		// e prima c'era già stato un invio (invio==true), mette header=false
        if (ultimo_carattere == 13 && msg_response[0] == 10 && invio==true) header=false;
    	// ulteriore controllo sugli header
        ((ultimo_carattere == 13 && msg_response[0] == 10) || (ultimo_carattere==10 && invio))?invio=true:invio=false;  
        // memorizza l'ultimo carattere                                                                                       	
        ultimo_carattere = msg_response[0];

        //fprintf(fo,"%c",msg_response[0]); 
    }
    
	printf("File Ricevuto\n");
	
	//operazioni di chiusura!
	shutdown(s, 2);
	closesocket(s);
	WSACleanup();
	fclose(fo);
	return true;
}
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 15:02   #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
Probabilmente necessita anche di altri header.
Guarda con WireShark la richiesta che viene inviata dal browser e cerca di duplicarla.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 15:16   #3
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da cionci Guarda i messaggi
Probabilmente necessita anche di altri header.
Guarda con WireShark la richiesta che viene inviata dal browser e cerca di duplicarla.
ho provato ad inviarlo con tutti gli header che invia firefox e niente...
ho provato ad inviare con firefox solo l'header che invio io, cioè Host e funziona!!!
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 18:50   #4
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da cionci Guarda i messaggi
Probabilmente necessita anche di altri header.
Guarda con WireShark la richiesta che viene inviata dal browser e cerca di duplicarla.
grazie al tuo programma ho visto che il mio programma mandava un byte 00 finale in piu rispetto al browser...
ho modificato questa riga da
send(s, msg_enter, strlen(msg_enter) + 1, 0);
a
send(s, msg_enter, strlen(msg_enter), 0);

e ora funziona...

per così poco non andava

grazie
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 19:29   #5
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
anziché lavorare coi sockets non facevi prima ad usare Windows Internet o WinHTTP?
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 20:06   #6
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da fero86 Guarda i messaggi
anziché lavorare coi sockets non facevi prima ad usare Windows Internet o WinHTTP?
non ne ero a conoscenza
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 20:57   #7
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da fero86 Guarda i messaggi
anziché lavorare coi sockets non facevi prima ad usare Windows Internet o WinHTTP?

gia che ci sono lo chiedo: esiste un api che mi permette di prendere una pagina tramite un proxy (ovviamente l'indirizzo del proxy glielo passo io come parametro)??
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 21:40   #8
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da mamo139 Guarda i messaggi
gia che ci sono lo chiedo: esiste un api che mi permette di prendere una pagina tramite un proxy (ovviamente l'indirizzo del proxy glielo passo io come parametro)??
In C non so quale libreria fornisca questa funzionalità (di sicuro ci sarà e qualcuno te la segnalerà), usando Java invece è molto semplice. L'utilizzo del C è un vincolo per te?
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 00:29   #9
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da wisher Guarda i messaggi
In C non so quale libreria fornisca questa funzionalità (di sicuro ci sarà e qualcuno te la segnalerà), usando Java invece è molto semplice. L'utilizzo del C è un vincolo per te?
eh si... java non lo conosco

però ho guardato i pacchetti in transito quando imposto un proxy nel browser e non sembra molto complicato... adesso ci provo e vi dico come va.
grazie comunque
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 10:21   #10
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Potrebbe essere una buona occasione per studiare un nuovo linguaggio "moderno".
Come C#, Java o Python.

p.es. In C# tutto quello che hai scritto si riduce a 2 righe di codice.
E con il proxy 3.

Codice:
class Program
{
    static void Main(string[] args)
    {
        WebClient wc = new WebClient();
        //wc.Proxy = new WebProxy(....);
        wc.DownloadFile(@"http://www.hwupgrade.it/forum/showthread.php?p=25760450#post25760450", @"c:/QuestoThread.txt");            
    }
}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 10:33   #11
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Potrebbe essere una buona occasione per studiare un nuovo linguaggio "moderno".
Come C#, Java o Python.

p.es. In C# tutto quello che hai scritto si riduce a 2 righe di codice.
E con il proxy 3.

Codice:
class Program
{
    static void Main(string[] args)
    {
        WebClient wc = new WebClient();
        //wc.Proxy = new WebProxy(....);
        wc.DownloadFile(@"http://www.hwupgrade.it/forum/showthread.php?p=25760450#post25760450", @"c:/QuestoThread.txt");            
    }
}
mhhh... tutto troppo bello e facile...
non è che ha qualche dipendenza particolare?? tipo librerie??
ad asempio il tuo programma funziona su un windows xp he sp1 basebase con nulla installato o ci vuole qualche pacchetto .NET o robe varie installate??
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 10:48   #12
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
ovviamente ci vuole il .NET framework installato.
Ma solo quello.

Questo per qualsiasi programma fatto in C# o VB.net (o C++.net), anche solo Hello World.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 10:49   #13
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Potrebbe essere una buona occasione per studiare un nuovo linguaggio "moderno".
Come C#, Java o Python.

p.es. In C# tutto quello che hai scritto si riduce a 2 righe di codice.
E con il proxy 3.

Codice:
class Program
{
    static void Main(string[] args)
    {
        WebClient wc = new WebClient();
        //wc.Proxy = new WebProxy(....);
        wc.DownloadFile(@"http://www.hwupgrade.it/forum/showthread.php?p=25760450#post25760450", @"c:/QuestoThread.txt");            
    }
}
Anche in Java si fa in modo simile. Per questo lo consigliavo.
Quote:
Originariamente inviato da mamo139 Guarda i messaggi
mhhh... tutto troppo bello e facile...
non è che ha qualche dipendenza particolare?? tipo librerie??
ad asempio il tuo programma funziona su un windows xp he sp1 basebase con nulla installato o ci vuole qualche pacchetto .NET o robe varie installate??
Per poterlo eseguire devi avere installato il framework .Net
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 10:53   #14
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
ovviamente ci vuole il .NET framework installato.
Ma solo quello.

Questo per qualsiasi programma fatto in C# o VB.net (o C++.net), anche solo Hello World.
capito, grazie per le info
finche riesco a cavarmela con 20 minuti di smanettamenti continuo così... appena incontro uno scoglio insormontabile proverò a cambiare linguaggio...
però non facendo per lavoro ma solo per hobby alla fine mi diverto quasi a complicarmi la vita
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 11:01   #15
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da mamo139 Guarda i messaggi
però non facendo per lavoro ma solo per hobby alla fine mi diverto quasi a complicarmi la vita
Ah, ecco, mi sembrava
Allora buona goduria
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 12:14   #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 mamo139 Guarda i messaggi
mhhh... tutto troppo bello e facile...
non è che ha qualche dipendenza particolare?? tipo librerie??
ad asempio il tuo programma funziona su un windows xp he sp1 basebase con nulla installato o ci vuole qualche pacchetto .NET o robe varie installate??
Anche in C con libcurl è molto semplice: http://curl.haxx.se/lxr/source/docs/examples/simple.c
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 12:51   #17
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
dai sempre per rimanere a lavorare con le socket grezze vi chiedo questo:

quando provo a connettermi con:
connect(s, (struct sockaddr *)&sock, sizeof(sock));

come posso impostare un timeout, in modo che se il server non mi risponde il mio programma non sta piantato delle ore ad aspettare??
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 18:06   #18
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Potrebbe essere una buona occasione per studiare un nuovo linguaggio "moderno".
Come C#, Java o Python.

p.es. In C# tutto quello che hai scritto si riduce a 2 righe di codice.
E con il proxy 3.

Codice:
class Program
{
    static void Main(string[] args)
    {
        WebClient wc = new WebClient();
        //wc.Proxy = new WebProxy(....);
        wc.DownloadFile(@"http://www.hwupgrade.it/forum/showthread.php?p=25760450#post25760450", @"c:/QuestoThread.txt");            
    }
}
Python:

Codice:
import urllib
urllib.urlretrieve("http://www.hwupgrade.it/forum/showthread.php?p=25760450#post25760450", "C:\QuestoThread.txt")
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 18:43   #19
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Abbiamo un nuovo cdimauro tra di noi...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 19:13   #20
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Abbiamo un nuovo cdimauro tra di noi...

__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
DAZN lancia un'offerta flash per il Blac...
Meta Quest 4 è in sviluppo: il nu...
Dall'Olanda arriva l'auto elettrica modu...
La sonda spaziale NASA Voyager 1 tra cir...
La navicella Shenzhou-22 ha effettuato i...
Tre astronauti europei voleranno verso l...
LG UltraGear 37G800A: 37 pollici, 4K e 1...
Stanco dei browser pieni di AI? Orion pe...
GeForce RTX 5000 custom in pericolo? NVI...
Windows Update prende il posto di Micros...
Segnali di crisi per il mercato Smart TV...
Lenovo LEGION e LOQ con NVIDIA GeForce R...
Nuova Fiat 500 ibrida al debutto. Elkann...
Ecco il primo PC da gaming basato su una...
Grok può battere i campioni di Le...
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: 07:07.


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