Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [C] socket per newbie

  1. #1

    [C] socket per newbie

    Ciao a tutti.
    Ho una scarsa infarinatura della sintassi di base del C su ambienti win32 e vorrei azzardare ad addentrarmi nello studio dei socket per iniziare a creare qualche semplice applicativo che giri su TCP/IP. Alcune domande:

    1) anzitutto mi servirebbe un punto di riferimento su cui studiare. Una guida a prova di imbecille in cui venga spiegato anche il piu piccolo particolare e non venga dato per scontato nulla. Avete qualcosa in particolare da consigliarmi?

    2) Sono un utilizzatore di sistemi sia Windows che GNU/Linux.
    Iniziando a studiare questo tipo di argomentazione mi conviene buttarmi sulle socket dei sistemi unix o le winsock dei sistemi Windows?
    Ho come l'impressione che le prime siano più facili da gestire ma la diffusione delle piattaforme Microsoft giocherebe sicuramente a mio favore per quanto riguarda la reperibilità di materiale online quali thread, sources, how tos e documentazione varia.

    2bis) le differenze tra socket e winsocket sono sostanziali? Ipotizzando che mi addentri nello studio delle prime avrei difficoltà a passare successivamente allo studio delle seconde? Inoltre, la differenza di architettura dei due sistemi influisce sulla programmazione C in modo significativo?

    3) Quanto è importante il livello di conoscenza del C? E' fondamentale avere un infarinatura più che buona per azzardare ad addentrarsi nella programmazione in socket?
    Personalmente non mi reputo neanche sufficiente.
    Ho letto una manciata di guide e posso dire di conoscere a livello molto "amatoriale" la sintassi e i concetti fondamentali quali variabili, strutture, array, puntatory ecc... ma le lacune riguardo il linguaggio sono quanto mai evidenti.


    Mi scuso per la quantità di domande da neofita ma la voglia di mettersi a creare applicativi di rete è davvero forte.


    Ringrazio anticipatamente chiunque abbia gia intrapreso il percorso che mi accingo ad iniziare e abbia il buon cuore di consigliarmi.


    Saluti.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  2. #2

    Re: [C] socket per newbie

    Originariamente inviato da billiejoex

    1) anzitutto mi servirebbe un punto di riferimento su cui studiare. Una guida a prova di imbecille in cui venga spiegato anche il piu piccolo particolare e non venga dato per scontato nulla. Avete qualcosa in particolare da consigliarmi?
    Di completo completo non ho mai trovato nulla neppure io, ma questo è un buon punto di inizio:
    http://www.ecst.csuchico.edu/~beej/guide/net/html/

    la diffusione delle piattaforme Microsoft giocherebe sicuramente a mio favore per quanto riguarda la reperibilità di materiale online quali thread, sources, how tos e documentazione varia.
    Hahahahah ti sbagli di grosso
    Le winsock ti fregano... tanto per cominciare il mondo gira su Unix e non certo su Windows; inoltre se conosci le socket Unix (che poi sono quelle standard ) il passo alle libcap è breve, e con quelle fai cose carine sul serio
    Sulle winsock troveresti qualche tutorial o poco più, ma il codice in rete sulle winsock...


    3) Quanto è importante il livello di conoscenza del C?
    Non indispensabili per seguire la guida, ma appena ti leggi qualche sorcio rischi di non capir nulla
    Almeno in teoria devi sapere la sintassi

    Un ultimo appunto: per applicazioni di rete ad alto livello (che usino protocolli classici) usare il C è uno sbatti inutile: con Perl e Python faresti molto prima... punta sul C se vuoi fare networking a basso livello. Molto basso

  3. #3
    Perl e Python?
    Uhm... non li ho visti manco in fotografia ma a naso non mi spirano granchè.
    Cmq appena vedo i sorgenti riportati nella guida che mi hai consigliato, relativa ai socket, mi viene da piangere.
    Ma tu ci capisci?
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  4. #4
    Originariamente inviato da billiejoex
    Perl e Python?
    Uhm... non li ho visti manco in fotografia ma a naso non mi spirano granchè.
    Perl e Python sono due linguaggi di scripting di alto livello, di conseguenza ti semplificano un certo tipo di lavoro e te ne rendono impossibile un altro.
    Con Perl e Python puoi gestire le socket piuttosto bene e più facilmente, ma 1) c'è molta meno documentazione in giro 2) sono sempre linguaggi di alto livello, quindi con Python non ti puoi mettere a smanettare sugli header di un icmp

    Cmq appena vedo i sorgenti riportati nella guida che mi hai consigliato, relativa ai socket, mi viene da piangere.
    Ma tu ci capisci?
    Quei sorgenti sono semplici
    Ad ogni modo il metodo migliore è leggersi un po' di man Linux quando non capisci e provare a scrivere qualcosa tu, magari partendo da sorci altrui. In rete ne trovi parecchi.
    Installati le libcap e stampati il man. visto che pure qui di documentazione ce n'e' poca.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Interessa anche a me l'argomento. Però siccome sono inchiodato su piattaforma Windows ( ), cosa mi consigli ?

  6. #6
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    Le socket (o i socket come dice qualcuno) nascono su BSD e poi sono state trapiantate su tutte le versioni Unix, quindi (nel senso di poi... ) su Linux.
    Conoscere le basi del funzionamento delle BSD socket sicuramente aiuta anche nell'uso di Winsock. Ci sono alcune differenze ma per le prime sperimentazioni le differenze non sono abissali e comunque i concetti base sono quelli. Esempio che risalta subito su win è l'uso iniziale di WSAStartup e finale di WSACleanup che su *nix non esistono assolutamente... ma questo non è un problema, basta saperlo.

    Altra differenza è che su *nix c'è omogeneità tra i socket e i file descriptor. Su windows no! questo ha delle importanti implicazioni nell'uso della redirezione. Ma questo fa già parte di un argomanto più "avanzato" e non ti sto ad annoiare.

    Ti dico per esperienza che a livello base (e qui parlo di inviare e ricevere semplici messaggi come può essere una interrogazione client-server) non ci sono sostanziali differenze.


    Per quanto concerne la conoscenza del C, mi associa alle considerazioni di maiosyet_2. Esistono delle strutture dati abbastanza complicate nell'ambito delle socket per uno che non ha dimestichezza col linguaggio. Mi riferisco in particolare a sockaddr /sockaddr_in e hostent usate nell'inizializzazione degli endpoint (ip/porta etc) e nella risoluzione dei nomi. Queste contengono strutture nidificate e accedervi a volte è un problema anche per chi conosce il C ma non ha freschi concetti quali puntatori e roba simile.

    Tu puoi benissimo impararti le linee di codice a memoria o fare copia/incolla e modificare quello che ti serve ma se ci devi mettere del tuo per creare una cosa un po' "diversa" rischi di non riuscirci se non hai capito bene i concetti. Per cominiciare comunque puoi fare copia/incolla...

    Documentazione: mi associo nuovamente a maiosyet_2. Roba su BSD socket ne trovi ovunque. Cercando bene la trovi comunque anche per Win. I link sotto possono esserti utili (non sono tutti allo stesso livello come argomenti affrontati:


    http://burks.bton.ac.uk/burks/pcinfo...ut/winsock.htm
    http://tangentsoft.net/wskfaq/

    Riferimenti all'interfaccia:
    http://msdn.microsoft.com/library/de...art_page_2.asp
    http://www.jimprice.com/winsock/winsock2api-withtoc.PDF
    ftp://ftp.microsoft.com/bussys/winso...k2/WSAPI22.DOC
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  7. #7
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Per programmare su piattaforma Linux dai un'occhiata qui:

    http://gapil.firenze.linux.it/

    Linux user number 403381

    Stop TCPA!

  8. #8

  9. #9
    Beh... grazie di cuore a tutti. Inizio a spulciare i links segnalati. In casi di progressi vi farò sapere.

    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

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.