Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-06-2008, 11:48   #1
Fede_Reghe
Member
 
L'Avatar di Fede_Reghe
 
Iscritto dal: Dec 2006
Città: Firenze
Messaggi: 118
[C++/Unix] Chiusura socket

Ho un programma C++ che apre un socket in listen e fa tutto quello che deve fare Il problema nasce quando devo riavviarlo, gli invio un kill SIGTERM da shell di linux e se tento di riavviarlo ho l'errore "BIND FAILED", come se la porta fosse ancora occupata. L'unico modo è attendere una decina di minuti o riavviare il sistema.

Esiste un comando linux o qualche riga C++ che mi permette di chiudere il socket zombie del programma chiuso?
__________________
Federica
Fede_Reghe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 11:55   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
Quote:
Originariamente inviato da Fede_Reghe Guarda i messaggi
Ho un programma C++ che apre un socket in listen e fa tutto quello che deve fare Il problema nasce quando devo riavviarlo, gli invio un kill SIGTERM da shell di linux e se tento di riavviarlo ho l'errore "BIND FAILED", come se la porta fosse ancora occupata. L'unico modo è attendere una decina di minuti o riavviare il sistema.

Esiste un comando linux o qualche riga C++ che mi permette di chiudere il socket zombie del programma chiuso?
potresti gestire il segnale SIGTERM nel tuo programma e forzare la chiusura del socket.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 11:56   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
bello Linux, bel sistema
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 12:00   #4
Fede_Reghe
Member
 
L'Avatar di Fede_Reghe
 
Iscritto dal: Dec 2006
Città: Firenze
Messaggi: 118
Quote:
Originariamente inviato da vizzz Guarda i messaggi
potresti gestire il segnale SIGTERM nel tuo programma e forzare la chiusura del socket.
googlando ho trovato che posso utilizzare la funzione

signal(SIGTERM, funzione);

Ma precisamente, dove va messa? nel main() all'inizio del programma?
__________________
Federica
Fede_Reghe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 12:05   #5
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da 71104 Guarda i messaggi
bello Linux, bel sistema
ma come sei monotono...inoltre un post che non serve a nulla (come questo rigo, ma almeno dopo ho scritto altro )

Quote:
Originariamente inviato da Fede_Reghe Guarda i messaggi
Ho un programma C++ che apre un socket in listen e fa tutto quello che deve fare Il problema nasce quando devo riavviarlo, gli invio un kill SIGTERM da shell di linux e se tento di riavviarlo ho l'errore "BIND FAILED", come se la porta fosse ancora occupata. L'unico modo è attendere una decina di minuti o riavviare il sistema.
Esiste un comando linux o qualche riga C++ che mi permette di chiudere il socket zombie del programma chiuso?

Se ho ccapito bene, per risolvere dovresti cambiare un'opzione del socket, è giusto un rigo di codice, ma non lo dicordo , in modo che si connetta di nuovo ad un indirizzo "già in uso" e cosi la bind non ti da più problemi.

EDIT:
Quote:
Originariamente inviato da Fede_Reghe Guarda i messaggi
googlando ho trovato che posso utilizzare la funzione

signal(SIGTERM, funzione);

Ma precisamente, dove va messa? nel main() all'inizio del programma?
la devi mettere nel main...all'inizio. Poi ti crei la funzione "funzione" e li dentro chiudi il socket.
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 12:11   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
ma come sei monotono...
abbi pazienza, ma da sempre il mondo è popolato da contaballe che me lo rifilano come il sistema più sicuro del mondo che "non permette ai processi di prendersi tutte le risorse che vogliono", "al contrario di Windows"

edit - anzi, al contrario del "sistema di mamma M$"
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 12:23   #7
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
hai cambiato l'avatar apposta??

cmq ognuno la pensa come vuole...c'è chi preferisce windows, virus, antivirus, anti questo e quello..chi ama linux coi problemoni irrisolvibili delle socket....ma a me non interessa (e cmq in questa discussione non c'entra nulla)

Solo è inutile dire "bello linux", quando Fede_Reghe ha chiesto tutta un altra cosa...e come se andassi nella sezione di windows e per ogni problema che qualcuno posta, io scrivessi "bello windows"....
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 12:24   #8
Fede_Reghe
Member
 
L'Avatar di Fede_Reghe
 
Iscritto dal: Dec 2006
Città: Firenze
Messaggi: 118
Grazie a tutti! Gestendo i segnali, e chiudendo la socket, it's all ok!
__________________
Federica
Fede_Reghe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 13:48   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
e come se andassi nella sezione di windows e per ogni problema che qualcuno posta, io scrivessi "bello windows"....
ennò bello mio, c'è problema e problema: che un processo possa causare un leak a livello di sistema mi pare abbastanza scandaloso...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 14:25   #10
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da 71104 Guarda i messaggi
ennò bello mio, c'è problema e problema: che un processo possa causare un leak a livello di sistema mi pare abbastanza scandaloso...
ennò bello mio, c'è problema e problema: che un processo possa da solo cancellare l'intero sistema, compresa la cartella di windows e il suo registro, senza restrizioni mi pare abbastanza scandaloso...
(non posso farti l'esempio dei socket su winzoz perchè non sò come funzionano li )

cmq se avesse inserito la gestione dei segnali oppure l'opzione sulla socket, questo problema non si avrebbe avuto...Inoltre il suo problema è che, quando riavvia il programma (credo sia il client ma il discorso è sempre lo stesso), la porta che usa risulta ancora occupata. Per questo la bind ritorna errore....non c'è nessun problema di memoria...anzi.

sullo Stevens o gapil se ne parla...
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 14:31   #11
Albi89
Senior Member
 
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
ennò bello mio, c'è problema e problema: che un processo possa da solo cancellare l'intero sistema, compresa la cartella di windows e il suo registro, senza restrizioni mi pare abbastanza scandaloso...
Sono proprio curioso di vedere come questo sarebbe possibile in Windows Vista
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
--Gerald Weinberg
Albi89 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 14:39   #12
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da Albi89 Guarda i messaggi
Sono proprio curioso di vedere come questo sarebbe possibile in Windows Vista
non lo è?

è stato inserito una sorta di "root"?? Se è cosi sono contento..finalmente dove 8 versioni di windows hanno fatto una cosa utile....cmq spiegami, sono curioso
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 15:30   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
ennò bello mio, c'è problema e problema: che un processo possa da solo cancellare l'intero sistema, compresa la cartella di windows e il suo registro, senza restrizioni mi pare abbastanza scandaloso...
cheeee????
guarda, pure da Windows XP (lasciando perdere account amministrativi vs. LUA e menate varie), apri esplora risorse e dimmi se riesci a cancellare ntoskrnl.exe

se hai paura di riuscirci (lol ) fallo su una macchina virtuale.


Quote:
(non posso farti l'esempio dei socket su winzoz perchè non sò come funzionano li )
quasi identici purtroppo


Quote:
cmq se avesse inserito la gestione dei segnali oppure l'opzione sulla socket, questo problema non si avrebbe avuto...
un po' come il multitasking cooperativo di Windows 3.1: concediamo la CPU al processo di turno e fidiamoci che la restituisca


Quote:
Inoltre il suo problema è che, quando riavvia il programma (credo sia il client ma il discorso è sempre lo stesso), la porta che usa risulta ancora occupata. Per questo la bind ritorna errore....non c'è nessun problema di memoria...anzi.
dici? e se io scrivo un programma idiotissimo che con un for apre tutte e 65535 le porte e lo termino brutalmente? il problema non è tanto di memoria...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 15:52   #14
Albi89
Senior Member
 
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
non lo è?

è stato inserito una sorta di "root"?? Se è cosi sono contento..finalmente dove 8 versioni di windows hanno fatto una cosa utile....cmq spiegami, sono curioso
Sì qualcosa di simile, anche se non ti saprei dire i dettagli con precisione.

In ogni caso anche quando si è loggati con un account che ha privilegi di amministratore, è necessario confermare ogni operazione su file che non si trovano nelle cartella Utente dell'utente in questione (un po' come la tua home in Linux).

E' molto, molto difficile che qualcosa riesca a farti danni seri senza che tu gli dica esplicitamente "puoi farlo".
D'altra parte, non è che l'utente neofita medio di Ubuntu si faccia troppi problemi a scrivere sudo, quindi la componente di rischio è circa equivalente.

Anche per questo molto software vetusto è incompatibile con win vista, dato che cerca di scrivere file di configurazione e dati direttamente nella cartella programmi, cosa che nn possono fare se non lanciati con espliciti permessi.

Che poi io appoggi win vista e il mio giudizio possa essere di parte non c'è dubbio. Fattostà che, lentezza di avvio a parte, è il sistema più vicino alle mie esigenze che abbia provato.
Ma è anche vero che la lentezza d'avvio è dovuta al fatto che non riesco a resistere all'orologio e al calendario sulla sidebar, e allo sfondo con le foto delle vacanze, e alle finestrelle trasparenti...
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
--Gerald Weinberg
Albi89 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 16:07   #15
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Albi89 Guarda i messaggi
Sì qualcosa di simile, anche se non ti saprei dire i dettagli con precisione.
non è stato "introdotto" nulla di simile: il sistema di sicurezza al 90% c'era già ed era già molto più flessibile di quello di Linux; ciò che è stato introdotto sono nuove features come le etichette di integrità e l'ormai arcinoto UAC.


Quote:
In ogni caso anche quando si è loggati con un account che ha privilegi di amministratore, è necessario confermare ogni operazione su file che non si trovano nelle cartella Utente dell'utente in questione (un po' come la tua home in Linux).
non è detto: le operazioni che richiedono permessi elevati potrebbero venir negate direttamente e senza la presentazione di alcun messaggio di conferma all'utente. tale comportamento dipende da come è scritto il manifest dell'applicazione, sempre che ne abbia uno visto che c'è ancora gente che programma col MinGW in Dev-C++


Quote:
E' molto, molto difficile che qualcosa riesca a farti danni seri senza che tu gli dica esplicitamente "puoi farlo".
D'altra parte, non è che l'utente neofita medio di Ubuntu si faccia troppi problemi a scrivere sudo, quindi la componente di rischio è circa equivalente.
anzi: su Windows l'unico utente che di default ha il permesso di logon è SYSTEM.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 16:13   #16
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da 71104 Guarda i messaggi
cheeee????
guarda, pure da Windows XP (lasciando perdere account amministrativi vs. LUA e menate varie), apri esplora risorse e dimmi se riesci a cancellare ntoskrnl.exe

se hai paura di riuscirci (lol ) fallo su una macchina virtuale.
beh...essendo il file in esecuzione non lo cancella..ma cancella il resto...poi riavvia (perchè windows alla minima cosa devi riavviare) e vedi cosa ti trovi. E poi un virus potrebbe fare questo e molti altri danni. E non mi risulta che virus NON hanno causato il blocco del sistema...anzi riescono a fare quello che vogliono...sbaglio?
Se non avessi un antivirus, il pc lo dovrei formattare dopo 30 secondi (provato)...con un antivirus stò più o meno apposto, ma il pc non rende allo stesso modo (almeno quelli che non usano gli ultimi pc)

Quote:
un po' come il multitasking cooperativo di Windows 3.1: concediamo la CPU al processo di turno e fidiamoci che la restituisca

dici? e se io scrivo un programma idiotissimo che con un for apre tutte e 65535 le porte e lo termino brutalmente? il problema non è tanto di memoria...
Quelle occupate dal sistema non te le fa aprire, apri le altre...chiudile di botto....e quindi? l'unico problema che puoi avere e che un programma collegato a quelle porte ti dice che il socket ha chiuso la comunicazione...

Scusa ma se io sono un server e stò in attesa di client...a questo punto se ne connettono 100, attraverso 100 porte diverse (giusto per dire). poi chiudo il server, i client riceveranno il messaggio che il socket è stato chiuso (dalle relative funzioni di lettura e scrittura sul socket). dove stà il problema? Mi sembra un comportamento normale....O chiudi il server di botto o stacchi il acvo di rete, tutto questo grave problema non lo vedo
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 16:19   #17
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da 71104 Guarda i messaggi
non è stato "introdotto" nulla di simile: il sistema di sicurezza al 90% c'era già ed era già molto più flessibile di quello di Linux; ciò che è stato introdotto sono nuove features come le etichette di integrità e l'ormai arcinoto UAC.

non è detto: le operazioni che richiedono permessi elevati potrebbero venir negate direttamente e senza la presentazione di alcun messaggio di conferma all'utente. tale comportamento dipende da come è scritto il manifest dell'applicazione, sempre che ne abbia uno visto che c'è ancora gente che programma col MinGW in Dev-C++

anzi: su Windows l'unico utente che di default ha il permesso di logon è SYSTEM.
e come mai allora progammi tipo cclener oppure reg qualcosa riescono a modificare il registro di windows??

Se è come dici, certi programmi non potrebbero venire eseguiti..ma ci sono moltissime guide della serie "come ripulire il registro di windows"....se fosse un'operazione di super-utente questo non sarebbe possibile...eppure lo era

Se il registro viene compromesso windows e i programmi diventano inutilizzabili....no?
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 16:32   #18
eVuGEGA
Member
 
L'Avatar di eVuGEGA
 
Iscritto dal: Apr 2008
Messaggi: 181
Quote:
Originariamente inviato da 71104 Guarda i messaggi
cheeee????
guarda, pure da Windows XP (lasciando perdere account amministrativi vs. LUA e menate varie), apri esplora risorse e dimmi se riesci a cancellare ntoskrnl.exe

se hai paura di riuscirci (lol ) fallo su una macchina virtuale.
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
beh...essendo il file in esecuzione non lo cancella..
In realta' ntoskrnl.exe non viene cancellato perche' e' protetto dal Windows File Protection (che puo essere disabilitato abbasanza facilmente se si e' loggati come amministratore), non perche' e' in uso
Questo almeno fino ad XP, Vista non so

Ultima modifica di eVuGEGA : 22-06-2008 alle 16:35.
eVuGEGA è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 17:00   #19
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
gepeppe, lascia perdere: Windows ha sistemi di sicurezza notevoli già a partire da NT. E t'ho detto tutto.

Continuate la discussione sui socket, che è meglio.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2008, 00:00   #20
MD.TPTM
Member
 
Iscritto dal: Dec 2003
Città: Napoli
Messaggi: 142
Rassicuro 71104 che il socket TCP "fantasma" che rimane aperto dopo un'interruzione improvvisa di un processo che aveva effettuato una bind viene chiuso dal kernel poco dopo. Mi sembra strano che Fede_Reghe debba aspettare anche 10 minuti, a me spesso capita che sia riutilizzabile sin da subito, o in caso di bind error al massimo aspetto 60 secondi. In ogni caso per evitare l'errore si può utilizzare l'opzione del socket "SO_REUSEADDR".
__________________
Ho concluso trattative positivamente con: Sirio, SchumyFast, ST3P, maupap, chrisp, BloodFlowers, Polvere, creature.
MD.TPTM è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Roscosmos ha lanciato il satellite meteo...
Starship Troopers: Ultimate Bug Wars, to...
Il razzo spaziale europeo Ariane 6, per ...
Oracle Fusion Cloud Applications si pote...
OHB Italia svilupperà un satellit...
Fortinet: "Ora abbiamo una chance d...
Linux Mint chiude con gli aggiornamenti ...
Compressori portatili auto in sconto su ...
Durante il lancio della missione USSF-87...
Dopo il ritiro di Intel da Magdeburgo, l...
Xiaomi 15T scende a 388€ su Amazon: 12GB...
MSI Afterburner: arriva il monitoraggio ...
Missione cinese Chang'e-6: confermata l'...
Addio esenzione sotto i 150 euro: l'UE i...
Allarme riavvii su Windows 11 dopo il ri...
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: 05:34.


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