Newsgroup: it.comp.lang.c
Titolo: Problemi con le socket...

Salve a tutti.
A casa ho 2 computer.
Vorrei realizzare un programmino che lanciato sul primo computer ,mi dica quale è la porta non utilizzata in un certo momento sul secondo computer.
Utilizzo le socket,ma non capisco come mettere in listen il secondo computer.
Inoltre sul secondo computer non ci deve essere installata nessuna versione server del mio programma.
Grazie anticipatamente.
 
--
TiscaliFreeNet, libero accesso ad Internet.
http://www.tiscalinet.it
--
Posted from 
laguna.tiscalinet.it
 [195.130.224.86] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
394b5d5c...@laguna.tiscalinet.it...


Utilizzo le socket,ma non capisco come mettere in listen il secondo computer.
cosa intendi per "porta non utilizzata"?
Le porte da 1 a 1024 sono riservate...
Quelle superiori a 1024 sono libere, puoi utilizzare quella che
vuoi...
cavolo per sapere qual'e' libera dovresti provare un con bind in
sequenza su tutte le porte, se bind torna -1 c'e' stato un errore,
chechi l'errore, se e' "porta utilizzata" quella non e' libera...
gran casino!

vuoi...
0-1023 sono riservate
1024->65535 sono libere 

Per mettere in listen il server in linguaggio C fai così
struct sockaddr_in server, client;
SOCKET sock;
sock=socket(PF_INET, SOCK_STREAM, 0);
server.sin_addr=inet_addr(INADDR_ANY);
server.sin_family=AF_INET;
server.sin_port=htons(portachetiinteressa);
if (bind(sock, (struct sockaddr *) &server, sizeof(struct
sockaddr_in)) < 0 {
	perror("bind");
	exit(0);
	}
listen(sock, 20);	// Max connessioni in pendenza
newsock=accept(sock, &client, sizeof(struct sockaddr_in));
.......
cod

 1024->65535 sono libere
E' se c'e una socket aperta sulla 1024 la posso considerare ancora libera?
Ivan Molella

 listen(sock, 20);	// Max connessioni in pendenza
mmm... mi sa che quel "20" e' un po' troppo: se non sbaglio il valore
massimo e' 5...
--
 Ciao, Bianco.
 Reply to 
luca....@tiscalinet.it

 E' se c'e una socket aperta sulla 1024 la posso considerare ancora libera?
Il termine 'libero' e' improprio. Piu' che altro deve intendersi come
riservato o well-known.
PORT NUMBERS
The port numbers are divided into three ranges: the Well Known Ports,
the Registered Ports, and the Dynamic and/or Private Ports.
The Well Known Ports are those from 0 through 1023.
The Registered Ports are those from 1024 through 49151
The Dynamic and/or Private Ports are those from 49152 through 65535
WELL KNOWN PORT NUMBERS
The Well Known Ports are assigned by the IANA and on most systems can
only be used by system (or root) processes or by programs executed by
privileged users.
Naturalmente niente impedisce di usare chesso' 23 per un servizio 
che non sia telnet o magari mettere telnet su porta 6500 per limitarsi
a tcp....Salvo poi destreggiarsi in tale deregulation...
-- 
Francesco P. Lovergine  f.lovergine AT 
iesi.ba.cnr.it


Forse intendevi dire ephemeral o registered o dynamic visto che le porte da 1024->65535 tutto
sono tranne che well-known o riservate.
Ivan Molella

 Ivan Molella
Riferisco solo quanto indicato nelle note rfc.
The port numbers are divided into three ranges: the Well Known Ports,
the Registered Ports, and the Dynamic and/or Private Ports.
The Well Known Ports are those from 0 through 1023.
The Registered Ports are those from 1024 through 49151
The Dynamic and/or Private Ports are those from 49152 through 65535
Se poi a te piace una diversa dizione, affare tuo...


 Se poi a te piace una diversa dizione, affare tuo...
So cosa dicono le RFC a tal proposito, ma io mi riferivo all' uso pratico di tali porte
e come ti ripeto non mi risulta nessun servizio associato alla porta 0 per il motivo che ho postato
precedentemente.
Se tu ne trovi uno, o sei in grado di associarne uno a tale porta fammelo sapere :)
Ivan Molella
Ivan Molella