View Full Version : [C] Applicazione client/server e indirizzi IP
Nagashi890
28-02-2013, 15:22
Ciao a tutti. Ho creato un'applicazione client/server, che ora eseguo sulla stessa macchina con sistema operativo Debian utilizzando l'indirizzo IP di localhost 127.0.0.1 e un numero di porta qualsiasi maggiore di 1023.
Ora mi chiedo, se volessi eseguire il client e il server su computer diversi, quale indirizzo IP e quale numero di porta devo usare? ho provato con l'IP pubblico che si vede su myip.it ma non funziona..
Già che ci sono faccio anche un'altra domanda.. è possibile, dai sorgenti dell'applicazione su linux, creare un eseguibile per windows?
Grazie!
The_ouroboros
28-02-2013, 15:34
Già che ci sono faccio anche un'altra domanda.. è possibile, dai sorgenti dell'applicazione su linux, creare un eseguibile per windows?
Grazie!
Ansi C? Ok.
Aggiungi altre cose? Dipende
Nagashi890
28-02-2013, 20:23
Sì, ho sviluppato tutto in C..
compilo client e server su debian con gcc.
Già che ci sono faccio anche un'altra domanda.. è possibile, dai sorgenti dell'applicazione su linux, creare un eseguibile per windows?
Grazie!
La parte socket e' "quasi" uguale. Le poche differenze le puoi gestire tranquillamente con una #define.
Se non ricordo male era il compilatore windows (vs6/vs2005) che non era proprio conforme agli standard. Forse ora e' cambiato qualcosa...
Quali siano le differenze.... e chi si ricorda:) mi ricordo solo che era poca roba...
Se ritrovo dei sorgenti di una lib che ho scritto anni fa e che girava su winXP e RedHat te li posto.
Nagashi890
02-03-2013, 15:24
Ok, grazie! :)
tomminno
02-03-2013, 16:42
Ciao a tutti. Ho creato un'applicazione client/server, che ora eseguo sulla stessa macchina con sistema operativo Debian utilizzando l'indirizzo IP di localhost 127.0.0.1 e un numero di porta qualsiasi maggiore di 1023.
Ora mi chiedo, se volessi eseguire il client e il server su computer diversi, quale indirizzo IP e quale numero di porta devo usare? ho provato con l'IP pubblico che si vede su myip.it ma non funziona..
Già che ci sono faccio anche un'altra domanda.. è possibile, dai sorgenti dell'applicazione su linux, creare un eseguibile per windows?
Grazie!
Per il server dovresti fare il bind sull'ip pubblico della macchina (basta eseguire l'ifconfig) e non su localhost.
La porta la puoi scegliere liberamente.
Devi stare attento ai firewall che potrebbero esserci nel mezzo (a bordo macchina, modem adsl...).
Per vedere se è un problema di connessione, dalla macchina client puoi provare ad eseguire un comando telnet sull'ip e la porta del server. Se ti risponde dovresti essere a posto.
Per quanto riguarda il porting a Windows, i socket BSD ci sono anche lì (Winsock), differiscono per quanto rigurda l'inizializzazione e header da includere, ma il codice del programma non dovrebbe necessitare modifiche.
Nagashi890
07-03-2013, 20:39
Ok, funziona se provo il programma su computer diversi appartenenti alla stessa sottorete, utilizzando l'indirizzo ip che mi dà ifconfig. Se però voglio che un client al di fuori della mia rete di casa si connetta al server, allora no. Il bind sull'indirizzo pubblico che vedo su myip.it non me lo fa fare (cannot assign requested address).
tomminno
11-03-2013, 10:25
Ok, funziona se provo il programma su computer diversi appartenenti alla stessa sottorete, utilizzando l'indirizzo ip che mi dà ifconfig. Se però voglio che un client al di fuori della mia rete di casa si connetta al server, allora no. Il bind sull'indirizzo pubblico che vedo su myip.it non me lo fa fare (cannot assign requested address).
Perchè quello che vedi è l'ip del tuo router (adsl?) non del tuo computer, quindi non puoi fare il binding su quell'ip. Devi configurare il NAT sul router in modo da reindirizzare tutte le chiamate provenienti dall'esterno su ip pubblico e porta da te scelta sull'ip privato della macchina su cui gira il server e la porta da te scelta (le porte potrebbero anche essere diverse...).
Nagashi890
12-03-2013, 21:31
Già, ci avevo pensato al problema del NAT. Devo provare, e poi vi faccio sapere.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.