 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
HELP! Problema inspiegabile... Clicca QUI per vedere il messaggio nel forum |
DarkGod |
Ciao a tutti, ho un problema veramente strano...
Sto realizzando il mio progetto di tesi. Si tratta di "server" programmato in C che effettua streaming video verso un'applicazione client VLC (VideoLan) che riproduce il filmato.
Fino a 2 o 3 settimane fa tutto funzionava correttamente.
Oggi ho provato a ricompilare il server, ma nonostante non abbia fatto NESSUNA modifica al codice, non funziona più. In pratica il programma compila, parte l'esecuzione, ma si blocca sulla funzione "recvfrom()", in attesa di richiesta di connessioni da parte di VLC.
La cosa strana è che se utilizzo una versione che avevo compilato precedentamente (il 28/7/05), funziona regolarmente, nonostante sia stata compilata con lo stesso codice e lo stesso compilatore.
Un'altra stranezza è che se rinomino l'eseguibile funzionante, smette di funzionare (mentre un mese fa potevo rinominarlo in qualsiasi modo e funzionava sempre).
Ho provato a compilarlo su un altro computer e funziona senza problemi, ma se lo stesso file lo trasferisco (già compilato) sul mio pc, improvvisamente smette di funzionare.
A questo punto credo che possa essere un problema di windows, magari qualcosa che riguarda l'indirzzamento IP, dato che si blocca sulla connessione e non rileva più le richieste di connessione di VLC..... ma non ho proprio idea di cosa possa essere.
Se potete darmi una mano ve ne sarei enormemente grato, sono in una situazione piuttosto critica dato che a causa di questo inconvieniente non posso più continuare il mio progetto di tesi...
Grazie mille. |
0m4r |
hai fatto qualche nuova installazione sul PC?
Magari qualche nuovo sw ha sminchiato qualche cosa... |
DarkGod |
Originally posted by 0m4r
hai fatto qualche nuova installazione sul PC?
Magari qualche nuovo sw ha sminchiato qualche cosa...
Può darsi, ho installato diversi programmi...
Poi mi viene in mente una cosa: era scaduto il periodo prepagato di aggiornamento di Norton Antivirus, non c'era modo di disinstallarlo normalmente, e quindi ho dovuto cancellare i file a mano ed eliminare le voci nel registro... magari ho toccato qualcosa che non dovevo.
In ogni caso, qualsiasi sia la causa, al momento l'unica cosa di cui ho bisogno è far funzionare di nuovo il mio programma, possibilmente evitando di formattare tutto... |
DarkGod |
Dev'essere un problema di risoluzione degli indirizzi o qualcosa del genere... magari il servizio DHCP.
Ho anche altri problemi, per esempio non riesco ad installare Cygwin: al momento della connessione al server (per scaricare i pacchetti) mi da un errore dicendo di controllare le impostazioni di rete...
HELP... :sad::cry::sad::cry::sad::cry::cry::cry: |
kokorina |
ma dark, succedono tutte a te? :)
e le impostazioni di rete che dicono? |
DarkGod |
Originally posted by kokorina
ma dark, succedono tutte a te? :)
e le impostazioni di rete che dicono?
Le impostazioni di rete sembrano a posto... io cmq non ho cambiato nulla.
Sigh... è un bel casino... :(
PS: Firewall disattivato e antivirus pure... quindi la causa è un'altra...
PS2: ciao ciao koky!! :razz: |
yeah |
Dev'essere un problema di risoluzione degli indirizzi o qualcosa del genere... magari il servizio DHCP.
Ho anche altri problemi, per esempio non riesco ad installare Cygwin: al momento della connessione al server (per scaricare i pacchetti) mi da un errore dicendo di controllare le impostazioni di rete...
Ma riesci a navigare su Internet con il browser? Hai dato una occhiata nel registro eventi? |
DarkGod |
Originally posted by yeah
Ma riesci a navigare su Internet con il browser? Hai dato una occhiata nel registro eventi?
No... cosa dovrei guardare esattamente?
La navigazione cmq funziona perfettamente, con qualsiasi browser. E' solo quando ricompilo il mio programma che non funziona la connessione client/server. Ma come ho detto se avvio una versione compilata un mese fa, oppure se eseguo su un altro pc, funziona correttamente... |
yeah |
No... cosa dovrei guardare esattamente?
Mmh stiamo parlando di Windows XP? In tal caso in Start->Programmi->Strumenti di amministrazione c'è 'Visualizzatore eventi', se qualche componente fa scherzi lì dovrebbe risultare qualcosa...
La navigazione cmq funziona perfettamente, con qualsiasi browser.
La cosa è veramente strana, ma se fosse un problema di DHCP non dovrebbe non funzionare anche internet? E' solo una idea... |
DarkGod |
Originally posted by yeah
Mmh stiamo parlando di Windows XP? In tal caso in Start->Programmi->Strumenti di amministrazione c'è 'Visualizzatore eventi', se qualche componente fa scherzi lì dovrebbe risultare qualcosa...
Sì, avevo dimenticato di dirlo: sistema operativo Windows XP installato su un portatile.
Ok, poi controllo il registro.
La cosa è veramente strana, ma se fosse un problema di DHCP non dovrebbe non funzionare anche internet? E' solo una idea...
Presumo di sì... ma non saprei dire.
Riflettendoci un po', potrebbe essersi sputtanata qualche tabella o qualche libreria? Dico questo perchè il vecchio file eseguibile compilato un po' di tempo fa funziona ancora, mentre ricompilandolo (quando appunto vengono linkate le librerie, ecc) non funziona più, in particolare non funziona più la funzione recvfrom() che serve per accettare delle connessioni. Forse non riesce più a risolvere gli indirizzi, o qualcosa del genere... |
kokorina |
Originally posted by DarkGod
Sì, avevo dimenticato di dirlo: sistema operativo Windows XP installato su un portatile.
Ok, poi controllo il registro.
Se lo sa il sensa che non sapevi dove stava il registro degli eventi, ti mena... :) |
DarkGod |
Boh, ho guardato il registro degli eventi ma non mi sembra che ci sia nulla inerente al mio problema... |
DarkGod |
ho provato con un altro programmino in C (fatto da me) che si connette a un server di posta: non funziona nemmeno quello! Compila, ma durante l'esecuzione non funziona la connessione col server...
Poi ho controllato che il programma funzionasse su un altro PC, e infatti funziona perfettamente! :pensa:
...MA CHE C****O PUO' ESSERE SUCCESSO?!? :wall:
:sighsob::sighsob::sighsob::sighsob::sighsob::sigh
sob: |
yeah |
Allegheresti l'eseguibile che non ti funziona? |
DarkGod |
Originally posted by yeah
Allegheresti l'eseguibile che non ti funziona?
Ma intendi il codice sorgente o proprio l'eseguibile?
Per l'eseguibile è un po' un casino... è fatto per Linux, e funziona con una versione modificata (e ricompilata) di VLC, che però funziona sotto Windows. Quindi bisogna usare Cygwin (che emula una shell di linux) per far funzionare anche il programmino sotto Windows... Inoltre per funzionare (e poterlo provare) sono necessari dei file video convertiti in un formato proprietario... :pensa: |
DarkGod |
Ma intendi il codice sorgente o proprio l'eseguibile?
Per l'eseguibile è un po' un casino... è fatto per Linux, e funziona con una versione modificata (e ricompilata) di VLC, che però funziona sotto Windows. Quindi bisogna usare Cygwin (che emula una shell di linux) per far funzionare anche il programmino sotto Windows... Inoltre per funzionare (e poterlo provare) sono necessari dei file video convertiti appositamente in un formato proprietario... :pensa: |
DarkGod |
Questa è la parte di codice in cui si blocca.
code: .........
.........
console("Main process ready");
while(1) { // waiting for clients and/or messages
clientAddr = netGets(socket, buffer); // get a message from the network
console("Incoming packet from %s:%d", inet_ntoa(clientAddr -> sin_addr), ntohs(clientAddr -> sin_port));
.........
.........
} // fine ciclo while
Si tratta di un server che invia un filmato in streaming verso un client che lo riproduce tramite VideoLan Player (VLC).
Questa è la parte in cui il server si mette in attesa di connessioni: viene stampato a video "Main process ready", poi entra nel ciclo "while" e non succede altro; "Incoming packet from..." non viene mai visualizzato, il programma si blocca sulla funzione netGets (che riporto qui sotto) come se non arrivassero connessioni, mentre invece VLC sta tentando di avviare una sessione di streaming, senza successo.
code: CODICE DELLA FUNZIONE netGets()
// get a null-terminated string from the network into buffer and return the sockaddr_in of the sender
struct sockaddr_in * netGets(int s, char * buffer) {
static struct sockaddr_in addr;
int len = sizeof(struct sockaddr_in);
int n;
if ((n = recvfrom(s, buffer, PACKET_SIZE - 1, 0, (struct sockaddr *) &addr, &len)) < 0) return NULL;
buffer[n] = '\0';
return &addr;
}
Resta bloccato nella funzione recvfrom() senza rilevare connessioni... |
yeah |
Ma intendi il codice sorgente o proprio l'eseguibile?
Intendevo l'eseguibile che non funzionava, ma vedo che è un pò problematico :)
Il fatto che prima funzionava e ora no è sospetto... Ad ogni modo, tanto per eliminare una possibile fonte di problemi, visto che recvfrom() blocca se non ci sono dati, prova ad impostare il socket come nonbloccante (ora mi sfugge quale funzione chiamare) e vedi se il problema persiste |
DarkGod |
Originally posted by yeah
Intendevo l'eseguibile che non funzionava, ma vedo che è un pò problematico :)
Il fatto che prima funzionava e ora no è sospetto... Ad ogni modo, tanto per eliminare una possibile fonte di problemi, visto che recvfrom() blocca se non ci sono dati, prova ad impostare il socket come nonbloccante (ora mi sfugge quale funzione chiamare) e vedi se il problema persiste
Sì, ho capito cosa intendi... però così facendo non resta più in attesa di connessioni, quindi in ogni caso non può funzionare....
Tu indendevi questo? |
yeah |
però così facendo non resta più in attesa di connessioni, quindi in ogni caso non può funzionare....
Tu indendevi questo?
Sì... però se il problema è un altro magari saltava fuori qualcosa. In verità non so che pensare ed era la prima cosa che mi è venuta in mente :)
Anche perchè che si rovini qualche libreria è strano, perchè tutti i programmi, di norma usano le DLL in Windows, quindi non dovrebbero funzionare neanche le altre applicazioni di rete.
Magari sono fuori strada, perchè non so CygWin come gestisca la cosa.
La storia delle voci di registro cancellate potrebbe centrare qualcosa... le altre primitive di rete danno problemi? La recv() funziona?
[edit] Hai la Service Pack 2? |
DarkGod |
Originally posted by yeah
Sì... però se il problema è un altro magari saltava fuori qualcosa. In verità non so che pensare ed era la prima cosa che mi è venuta in mente :)
Anche perchè che si rovini qualche libreria è strano, perchè tutti i programmi, di norma usano le DLL in Windows, quindi non dovrebbero funzionare neanche le altre applicazioni di rete.
Magari sono fuori strada, perchè non so CygWin come gestisca la cosa.
La storia delle voci di registro cancellate potrebbe centrare qualcosa... le altre primitive di rete danno problemi? La recv() funziona?
Funziona quasi tutto, per lo meno tutti i programmi che ho usato recentemente, ad eccezione di:
1) un altro programmino che avevo fatto per windows in cui sembra non funzionare la funzione recv(). (Anche questo l'ho provato in Cygwin)
2) il programmino di Fastweb per visualizzare in tempo reale le mail che arrivano nella casella di posta, senza utilizzare browser o client di posta. Anche questo un mese fa funzionava, ma ora non funziona più... (l'ho reinstallato 3 volte!)
Sul PC di casa ovviamente funziona tutto perfettamente.
Solo che al momento della discussione della tesi non mi posso portare un camion col PC di casa...!!! :asd:
EDIT: I ogni caso farò al più presto altre prove, appena avrò tempo (sono tiratissimo coi tempi di consegna del progetto)
Ringrazio di nuovo per qualsiasi aiuto... |
DarkGod |
[edit] Hai la Service Pack 2? [/B][/QUOTE]
Urca... sai che non ricordo? O_O'
Ma credo di sì, ho installato sempre tutti gli aggiornamenti... (controllerò)
Magari è stato proprio un aggioramento di Windows a sputtanare tutto... |
DarkGod |
Originally posted by yeah
Hai la Service Pack 2? [/B]
Sì, ho controlla, ho installato il SP2 e molti altri aggiornamenti.
Ma mi sono accorto di un altro problemone: NON FUNZIONA PIU' WINDOWS UPDATE!!
Si collega al sito, inizia la ricerca degli aggiornamenti disponibili, ma si interrompe a metà, dicendo genericamente che si è verificato un errore. :?
Non so se può essere connesso agli altri problemi... |
yeah |
Vedi il codice di errore e cerca sulla Knowledge Base
Ti auguro di trovare qualcosa, perchè quando non andava a me ho risolto formattando :( |
DarkGod |
Originally posted by yeah
Vedi il codice di errore e cerca sulla Knowledge Base
Ci ho avevo già provato... ma non c'era nessun codice di errore!
Dice solo che a causa di un errore l'applicazione viene interrotta. tutto qui. :sbonk:
Ti auguro di trovare qualcosa, perchè quando non andava a me ho risolto formattando :( [/B]
Già... è proprio quello che vorrei evitare!
Tra backup dei dati, formattazione e reinstallazione di tutto, ci pederei una vagonata di tempo... :# |
yeah |
La sentenza è che sei nella m...a :D
(ho finito le idee, mi spiace) |
DarkGod |
Originally posted by yeah
La sentenza è che sei nella m...a :D
(ho finito le idee, mi spiace)
Sigh... purtroppo lo so.. :(
Ma se non fosse per la tesi non mi preoccuperei nemmeno così tanto.
E se provassi a installare un'altra copia di Win in una nuova partizione, giusto per far funzionare momentaneamente il mio programmino?
Si riesce a installare per esempio W2K se c'è già installato XP?? |
yeah |
E se provassi a installare un'altra copia di Win in una nuova partizione, giusto per far funzionare momentaneamente il mio programmino?
Si riesce a installare per esempio W2K se c'è già installato XP??
Non penso possano esserci problemi (non credo Win2K faccia come Win98 che doveva scrivere comunque qualcosa su C:), tanto ne usi uno alla volta. |
DarkGod |
Originally posted by yeah
Non penso possano esserci problemi (non credo Win2K faccia come Win98 che doveva scrivere comunque qualcosa su C:), tanto ne usi uno alla volta.
Proverò. Se fuzionasse così per il momento (leggi: per la tesi) sarebbe già abbastanza.
Ricordo che era quasi impossibile installare Win95 o o Win98 se avevi già una versione superiore installata... |
yeah |
Ricordo che era quasi impossibile installare Win95 o o Win98 se avevi già una versione superiore installata...
Ora dovrebbe essere diverso... Infatti tempo fa ho installato XP a 64bit e non ho avuto problemi dovuti alla presenza dell'altro XP su un'altra partizione :)
Buona fortuna |
DarkGod |
Originally posted by yeah
Ora dovrebbe essere diverso... Infatti tempo fa ho installato XP a 64bit e non ho avuto problemi dovuti alla presenza dell'altro XP su un'altra partizione :)
Buona fortuna
Lo spero :)
Oggi se ho tempo faccio una prova... |
DarkGod |
FIGURIAMOCI!!!!
Ho creato una partizione, installato Win2K... e adesso XP non parte più!! :(:(
Mi ritrovo solo con win2000 in modalità 16 colori! |
kokorina |
vagamente mi ricordo che fosse necessario installare prima uno e poi l'altro, ma non ricordo l'ordine.
evidentemente l'ordine tuo è quello sbagliato :) |
DarkGod |
Originally posted by kokorina
vagamente mi ricordo che fosse necessario installare prima uno e poi l'altro, ma non ricordo l'ordine.
evidentemente l'ordine tuo è quello sbagliato :)
ma è un portatile, XP era preinstallato.
E cmq com'è possibile che installando il 2000 su un'altra partizione si sia sputtanata la partizione di XP? |
yeah |
Che sfiga... o_O
Che cosa fa quando cerchi di farlo partire?
Mmh... ma hai previsto un qualche boot loader? Perchè mi sa che Win2000 non fa le cose in automatico... |
DarkGod |
Sistemato il portatile! :-D
Sono riuscito a reinstallare WinXP dalla partizione di ripristino, senza perdere quasi nulla dei miei dati (molte cose le ha tenute e cmq avevo backuppato le cose fondamentali).
Credo di avere capito quale fosse il problema.
Avevo dovuto cancellare brutalmente Norton internet security, perchè non c'era modo di disinstallarlo. In questo modo ho cancellato anche il firewall, ma evidentemente ho lasciato il blocco automatico senza più la possibilità di disattivarlo.
Ecco perchè il mio vecchio programma compilato tempo fa funzionava ancora, dato che era stato sbloccato manualmente da me, mentre le nuove compilazioni restavano bloccate dal firewall senza possibilità di cambiare i settaggi.
1) Vi sembra sensato?
2) come posso togliere decentemente il norton antivirus preinstallato (e scaduto), eventualmente lasciando il firewall che funziona anche senza aggiornamenti?
Ciauz!! |
|
|
|
|