Oppure

Loading
10/07/08 11:09
marco81
Salve a tutti sono alle prime armi con la programmazione delle socket.
Ho visto che qui ci sono molti esperti..che sicuramente sapranno risolvere il mio problema.

In pratica devo realizzare un client (o meglio due client uno che usa TCP e l'altro che usa UDP) che invia una pacchetto ad un Server in ascolto (ad esempio invia la scritta "CIAO";)..

E fin qui ci dovrei riuscire..
il problema è che nel mio client deve essere specificabile oltre all'indirizzo IP di destinazione e la PORTA di destinazione anche LA PORTA SORGENTE!

Come si fa a specificare in un client (UDP e TCP) la porta sorgente ??????

Ho letto che si utilizza la funzione BIND anche nel CLIENT prima della CONNECT ma non ho capito come usare la BIND..Potreste postarmi qualche esempio di codice..

Ho fatto un pò di ricerche..ho trovati tanti esempi di client ma in nessuno veniva specificata la PORTA SORGENTE..

GRAZIE ANTICIPATAMENTE A TUTTI COLORO CHE AVRANNO LA PAZIENZA DI AIUTARMI.
aaa
10/07/08 11:30
pierotofy
C'è qualcosa che mi sfugge... cosa intendi per "specificare la porta sorgente"?
Il mio blog: piero.dev
10/07/08 11:34
gantonio
La cosa importante che non hai detto e' il "perche'" ti serva una cosa del genere.

Infatti, la porta sorgente e' ininfluente ai fini della comunicazione (TCP o UDP che sia) tanto che e' il sistema stesso a sceglierne una random tra le disponibili nel client.

Quindi ... perche' ti serve?
aaa
10/07/08 12:50
marco81
Postato originariamente da pierotofy:
... cosa intendi per "specificare la porta sorgente"?

intendo che quando si vorrà lanciare il client, si dovrà poter usare un comando del genere:

./client <porta sorgente> <indirizzo IP> <porta destinazione>

quindi la porta sorgente dovrà, in questo senso, essere specificabile dall'utente.


Postato originariamente da gantonio:

La cosa importante che non hai detto e' il "perche'" ti serva una cosa del genere.

Infatti, la porta sorgente e' ininfluente ai fini della comunicazione (TCP o UDP che sia) tanto che e' il sistema stesso a sceglierne una random tra le disponibili nel client.

Quindi ... perche' ti serve?


Questa è una bella domanda..ho capito benissimo che la porta sorgente non serve a nulla specificarla (proprio perchè viene asseganta dal sist operativo)... ma con questo clientino devo estendere le funzionalità di un softwere già esistente (che usano nella mia università;)..e questa funzionaltà prevede proprio l'invio di un pacchetto ad un server, il cui pacchetto ha la porta sorgente che è stata specificata dall'utente!

(..il perchè l'utente debba avere l'esigenza di dover specificare la porta sorgente..questo lo chiederò al mio prof..)

8-|
Ultima modifica effettuata da marco81 10/07/08 12:51
aaa
10/07/08 13:09
gantonio
Ma te lo ha dato come "compito" ?

In ogni caso, quando glielo chiedi, diccelo ...
aaa
10/07/08 13:40
marco81
Postato originariamente da gantonio:

In ogni caso, quando glielo chiedi, diccelo ...


cmq glielo chiedo..ma credo che il motivo sia che ci sono casi in cui un client vuole assicurarsi uno specifico indirizzo di PORTA poiché è solo attraverso di essa che può essere raggiunto da un server al quale aveva in precedenza inoltrato una richiesta.

Quindi con questo clientino si dà la possiilità di utilizzare una porta specifica e non una qualisiasi..


In ogni caso avete suggerimenti su come si usa la bind in questa situazione...
aaa
10/07/08 21:41
gantonio
La bind la usi come per il server ... cosa hai scritto per il server?
aaa
11/07/08 9:45
marco81
Postato originariamente da gantonio:

La bind la usi come per il server ... cosa hai scritto per il server?


Nn ho fatto nessun server..mi potresti dare qualche indicazione pratica..

Magari se hai un client già fatto che invia pacchetti..potresti cortesemente inserirgli una bind..e magari postarmi qui il codice..

sai sono alle primissime armi con questa programmazione delle socket..per il momento sto solo leggendo a che servono le varie chiamate Socket, bind, listen, connect, ecc..
Ultima modifica effettuata da marco81 11/07/08 9:47
aaa