Homepage  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


.dsy:it. .dsy:it. Archive > Community > Tech
 
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!!

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate