Elikkä voiko C++:lla lähettää noita IP-paketteja "manuaalisesti", eikä vain käyttäen jotain socketteja. http://fi.wikipedia.org/wiki/Paketti_(IP)
Nyt ei ole kyse siitä, mitä jollain kielellä voi tehdä, vaan siitä, mitä käyttöjärjestelmä mahdollistaa. Jos Windowsista puhut, anna WSASocket-funktiolle tyypiksi SOCK_RAW ja aseta päälle lippu IP_HDRINCL.
Kiitoksia!
Metabolix kirjoitti:
Nyt ei ole kyse siitä, mitä jollain kielellä voi tehdä, vaan siitä, mitä käyttöjärjestelmä mahdollistaa.
offtopic: No kyllähän minä sen ymmärrän. Käytin ilmaisua voiko C++:lla lähettää, sen takia ettei minun tarvitse erikseen kysyä, että voiko millään käyttöjärjestelmällä tehdä sitä ja sitten, että miten se C++:lla tehdään. Nyt pystyin sisällyttämään kaksi kysymystä yhteen lauseeseen, koska jos sen pystyy tekemään C++:lla niin käyttöjärjestelmä ei sitä tietenkään silloin estä.
Yksinkertaisin vastaus on siis ei. C++-kieleen ei sisälly mitään Internet-tavaraa, joten sillä ei voi lähetää IP-paketteja.
Tästä saivartelusta päästään myös kysymyksesi varsinaiseen ongelmaan eli siihen, ettei ole olemassa mitään yksiselitteistä tapaa lähettää IP-paketteja "C++:lla", vaan mahdollisuudet riippuvat täysin ympäristöstä, tässä tapauksessa olennaisesti käyttöjärjestelmän (C/C++-) API:sta. Hakusanoilla "raw ip" + <käyttöjärjestelmä> löytänet Googlesta ohjeet sen käyttöön.
Periaatteessa kannatta myös katsoa, löytyisikö tähän jotakin porttautuvia tai hommaa helpottavia kirjastoja, kuten esim. TCP-socketeille. Raw-IP-pakettien tapauksessa tosin näyttää vähän hiljaisemmalta.
os kirjoitti:
Periaatteessa kannatta myös katsoa, löytyisikö tähän jotakin porttautuvia tai hommaa helpottavia kirjastoja, kuten esim. TCP-socketeille.
Tässä ei ole se ideana, että kaikki tehtäisiin niin helpoksi, vaan haluan nähdä ihan käytännössä, miten asiat hoidetaan. Eli nyt ei ole kysymys siitä, että tekisin jotain järkevää.
offtopic: Tai no ehkä tässä on se järki, että jos teen omaan käyttöjärjestelmään internet tuen, niin jos olen tutustunut noihin IP-paketteihin, niin sen toteuttaminen on helpompaa. Mutta se on aika loppupäässä tuota käyttöjärjestelmä projektia.
Jalmari91 kirjoitti:
offtopic: Tai no ehkä tässä on se järki, että jos teen omaan käyttöjärjestelmään internet tuen, niin jos olen tutustunut noihin IP-paketteihin, niin sen toteuttaminen on helpompaa. Mutta se on aika loppupäässä tuota käyttöjärjestelmä projektia.
Käyttöjärjestelmän on loppupeleissä keskusteltava tietokoneen itsensä kanssa, eli käytännössä se, mitä haluat, on laiteajuri, joka käskyttää tietokoneesi internet-yhdyskäytävää sen haluamalla tavalla.
[IP-paketeista:] Kuten monissa muissakin tapauksissa, saatat saada hyödyllistä tietoa tutkimalla jo olemassa olevia kirjastoja.
Aihe on jo aika vanha, joten et voi enää vastata siihen.