Fammi vedere con uno screen l'output del server...
E scusa dov'è il problema ? E' ovvio che l'applicazione di chiude...cosa vuoi che accada ?
Si ma dice che la connessione è stata effettuata senza che nessuno si connetta!!! Io non ho neanche aperto il cmd per testare la connessione!
Nessuno si connette al mio server, eppure dice di si!
NB: studiare i socket in C prevede una buona conoscenza del linguaggio, se non la possiedi devi partire dalle basi. Non devi "provare" a capire, devi capire partendo dalle basi per arrivare ad argomenti del genere. Comunque questo sorgente lo hai scritto tu o lo hai trovato su internet ?
La connessione non è stata effettuata, il programma si mette in ascolto ma si chiude immediatamente perché hai messo il break e la getch() viene trascurata perché si trova nel ciclo for, se invece l'avessi messa al di fuori il programma ti farebbe visualizzare l'output, idem per il cin.get() e il return 0.
Si, il fatto che si chiude l'ho risolto. Ma rimane il fatto che il messaggio di connessione avvenuta esce fuori SOLO se il server accetta una connessione. Dato che non accetta un bel cavolo, manda lo stesso il messaggio. E' quello il problema
Il sorgente è incompleto e mal gestito a livello di errori che potrebbero verificarsi. Ti spiego il tassello che ti manca per capire :
if(Connect = accept(Listen, (SOCKADDR*)&Server, &size)) : con l'istruzione accept restituisci un valore di tipo SOCKET che corrisponde al descrittore del nuovo socket creato. In parole povere quella if può essere tradotta : se l'operazione svolta da accept() è andata a buon fine. Nel corpo della if c'è la famosa printf...la visualizzi perché accept() non ha restituito nessun errore non perché è stata creata una connessione, la connessione si crea quando una volta accettate le connessioni in entrata - finora il tuo programma si ferma qui - le elabora in base a quello che deve fare il server. In questo momento questo programma accetta le connessioni, nel caso in cui vanno a buon fine visualizza la printf e si chiude. Non hai implementato la gestione dei dati in arrivo - dunque di una connessione, perché quando avviene una connessione si inizia lo scambio di dati, il primo scambio di dati sono i pacchetti che contengono tutte le informazioni necessarie affinché la connessione venga effettuata correttamente -.
Ti ringrazio per la spiegazione. Ad ogni modo, passiamo avanti e spostiamo dal C++ al C
Ho un'altro prototipo/modellino di creazione socket, questa volta in C
"Ma che cazz combini"
Eh lo so, le sto provando proprio tutte per avere la soddisfazione di creare un applicazione client/server. Ho addirittura provato in Python e in questo preciso istante sto seguendo guida di uno bravo su YouTube per crearla in C# (win forms) :ahah:
Allora, in C sembra funzionare. Mi faresti il favore di scrivere la seguente linea di comando sul CMD?
telnet 192.168.1.67 100
Se ti connette riceverai un piccolo messaggio ;)
E madonna santa lo so che non si fa così ma su internet dei socket non ci capisco na beata perciò cerco un linguaggio dove sia più facile apprenderlo. NON CI SONO MANCO LIBRI. Mica so come te che sei il figlio di Bill Gates.NON E' COSI' CHE SI PROGRAMMA!
Yes, ma se metto quello preso da mioip.it mi dice:Ovviamente non mi si connetterà perché 192.168.x.x è un IP locale, non ha a che fare con internet. Dovresti studiarle queste cose.
E madonna santa lo so che non si fa così ma su internet dei socket non ci capisco na beata perciò cerco un linguaggio dove sia più facile apprenderlo. NON CI SONO MANCO LIBRI. Mica so come te che sei il figlio di Bill Gates.
Yes, ma se metto quello preso da mioip.it mi dice:Perfavore, Entra oppure Registrati per vedere i Link!
A Socket Error 10049 condition on your computer typically occurs when you attempt to connect to an invalid Internet address while using Windows Sockets 2.
Prova ad utilizzare inet_pton() come suggerito nel link che ti ho fornito e fai il debug con l'intellitrace ( premendo F11 ) per vedere se le variabili sono settate correttamente.
Non posso fare nessuna delle due cose dato che a me è C non C# e come IDE uso CodeBlocks D:
Se lo metto nel codice sorgente mi da erroreinet_pton() esiste in C non in C#
Se lo metto nel codice sorgente mi da errore
Perfavore, Entra oppure Registrati per vedere i Link!
Mi credi? Non so che fare... scrivi su Google Client/Server Example in C on Windows. Quanti sono? Otto milioni di risultati? Visitati tutti :|
Ma una maledetta ricerca non la sai fare ? Appena trovi un intoppo ti fermi ? MahPerfavore, Entra oppure Registrati per vedere i Link!
Già, peccato che mi da errore anche sull'header
Credo sia per Linux D: