Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Winsock e TCP / UDP

  1. #1
    Utente di HTML.it L'avatar di Teddy
    Registrato dal
    Dec 2001
    Messaggi
    178

    Winsock e TCP / UDP

    Non so se questo è il forum giusto ...
    Questo il problema:
    Sto studiando il winsock e non ho capito bene la differenza tra TCP e UDP.
    TCP è basato sulla connesione: mi permette infatti di collegare fisicamente due indirizzi IP, ma non è detto che necessariamente ci debba essere tramissione dati, cioè una volta aperta la connessione, la tramissione dati può avvenire anche mezz'ora dopo. Mi sembra di aver capito bene (ditemi se sbaglio).

    Invece non ho capito bene ciò che concerne UDP (o meglio io ho capito questo)
    La trasmissione dati non è legata alla connessione (???), ma tramite dei messaggi che vengono inviati solo quando c'è un flusso di dati, in altre parole, penso, ogni volta che ci dev'essere una transazione viene aperta una connessione esubito dopo chiusa ... ma non sono sicuro ... chi mi da qualche delucidazione???
    Grazie!!!
    Buon lavoro!
    Grazie e ciao a tutti

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    TCP:
    è un protocollo di comunicazione basato sulla connessione diretta fra due host.
    Condizione necessaria affinchè avvenga una connessione fra due host e che il ricevente sia in ascolto (listening) su una porta in particolare, altrimenti l'host che tenta di stabilire la connessione non riesce a connettersi.
    Una volta effettuata la connessione, il trasferimento dati avviene con la metodologia classica, il client (sender) invia um messaggio per collegarsi, il server (receiver) accetta (o rifiuta) la connessione. Adesso è possibile effettuare la trasmissione dati.
    Caratterisca di questo protocollo è quella di essere a conoscenza dello stao della connessione, verificare se i pacchetti sono stati ricevuti correttamente dal ricevente.

    UDP:
    è un protocollo di comunicazione NON basato sulla connessione diretta fra due host.
    Anche detto protocollo di tipo ConnectionLess.
    Per effettuare una trasmissione dati bisogna soltanto che l'host sender e l'host receiver abbiano 2 porte condivise (binding), una per ricevere ed una per inviare.
    Se l'host diciamo client sa che il server è in ascolto sulla porta 10 lui invia i dati a quel host sulla porta 10 e stop.
    Quindi senza verificare la disponibilità in quel momento del server ne lo stato della connessione (perchè non è stata effettuata) e quindi il client non sa se i dati sono stati ricevuti tutti, in parte o per niente.


    Spero di averti aiutato, se cmq fai delle ricerche on-line, trovi molta documentazione. Io ti consiglio di leggere tante fonti diverse in modo da farti una idea precisa, finchè non trovi l'argomento spiegato in maniera tale da essere comprensibile per te.


  3. #3
    Utente di HTML.it L'avatar di Teddy
    Registrato dal
    Dec 2001
    Messaggi
    178
    Ciao dark,
    ti ringrazio infinitamente ... mi hai schiarito le idee!!! ho fatto varie ricerche e ho trovato diverso materiale; su IoProgrammo di questo mese c'è anche un intero articolo su TCP/UDP, ma un piccolo particolare mi era sfuggito (e tu l'hai acchiappato!):
    UDP: l'host client invia i dati all'host server (senza essersi connesso fisicamente ad esso) e senza preoccuparsi di controllare il ricevimento o meno, integro o no dei dati da parte del server.
    Li spedisce punto e basta! se arrivano bene ... altrimenti CICCIA!!! Semplice no??? Non l'avevo capito.
    Grazie 100000000000000000000000000000000000000000!!!

    Una domanda: a parte le applicazioni di streming, dove può essere usato UDP?
    Grazie e ciao a tutti

  4. #4
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da Teddy
    Una domanda: a parte le applicazioni di streming, dove può essere usato UDP?
    prego, figurati.

    Non saprei farti un esempio specifico


  5. #5
    Utente di HTML.it L'avatar di Teddy
    Registrato dal
    Dec 2001
    Messaggi
    178
    Io penso ...
    - una chat potrebbe andare col UDP, che è molto più veloce ... ma davvero c'è tutto 'sto rischio di perdere tutti 'sti pacchetti in viaggio con UDP???
    - un telnet deve andare necessariamente col TCP
    Grazie e ciao a tutti

  6. #6
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da Teddy
    Io penso ...
    - una chat potrebbe andare col UDP, che è molto più veloce ... ma davvero c'è tutto 'sto rischio di perdere tutti 'sti pacchetti in viaggio con UDP???
    - un telnet deve andare necessariamente col TCP
    esatto...praticamente (Se non mi sbaglio) tutte le chat di instant messaging sono UDP

    non è che perdi pacchetti in viaggio...tu li mandi e lui li irceve, ma il ricevente non ti comunica se la ricezione è avvenuta correttamente...i problemi in rete sono quelli standard, dalle collisioni a problemi fisici di collegamento....

  7. #7
    Confermo pienamente. Io avevo appunto scritto inizialmente una chat in UDP, ma visto che perdevo dei pacchetti oppure mi arrivavano nn nella giusta sequenza, per evitare di dover implementare classi che ne facessero il conteggio ho abbandonato l'UDP per il TCP. Tra l'altro è possibile impostare sulla stessa porta connessioni con più host, così la cosa diviene semplice da gestire.

    Un esempio:

    --
    Visita il mio sito

    http://chichatta.no-ip.com

  8. #8
    Utente di HTML.it L'avatar di Teddy
    Registrato dal
    Dec 2001
    Messaggi
    178

    A proposito di winsock TCP e ... chat !!!

    Non apro un nuovo thread perchè questo mi sembra appropriato.

    Scrivendo una chat in VB6 e usando Winsock, essa necessita di un "server" in ascolto. Com'è possibile avere un server 24h su 24h che rimanga in ascolto su un semplice host di dominio commerciale (es. Aruba, ecc)?
    Grazie e ciao a tutti

  9. #9
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212

    Re: A proposito di winsock TCP e ... chat !!!

    Originariamente inviato da Teddy
    Non apro un nuovo thread perchè questo mi sembra appropriato.

    Scrivendo una chat in VB6 e usando Winsock, essa necessita di un "server" in ascolto. Com'è possibile avere un server 24h su 24h che rimanga in ascolto su un semplice host di dominio commerciale (es. Aruba, ecc)?
    non credo che il provider ti dia la possibilità di farlo, dovresti mettere un exe (cioè il programma server) sul loro server e lanciarlo...

  10. #10
    Utente di HTML.it L'avatar di Teddy
    Registrato dal
    Dec 2001
    Messaggi
    178
    Già ... lo pensavo anch'io ... impossibile!!!
    Però si potrebbe realizzare il server, anzichè in VB6, in un altro linguaggio (PHP, ASP, JAVA ... non ho idea) compatibile con i vari client scritti in VB6, così il server rimane in ascolto 24h su 24h e i vari client si possono collegare in ogni momento.
    Che linguaggi si possono usare?
    Grazie e ciao a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.