TCP / IP

0

Witam,
mam pytanie jak w c++(Windows bezpośrednio skorzystać z protokołu tcp/ip. Bez żadnych winsocków itp.
Są jakieś biblioteki, dokumentacja, tutoriale?

Pozdrawiam

0

Nie można. Sockety są udostepniane przez system operacyjny. W windowsie jest to winsock, na *nixach jest jest to berkeley socket (bodajze). Sa do tego charakterystyczne nakladki (np obiektowe) dla kazdej z platform. Ale bez socketow sie nie da.

0
[losowa nazwa] napisał(a)

Ale bez socketow sie nie da.

Hmmm, ciekawe co by o tym powiedział Microsoft, skoro Windows NT zawiera obiekt \Device\Tcp, co więcej, widoczny też w globalnej przestrzeni nazw. Sockety to tylko API-nakładka do komunikacji z nim.

0

Hmm... i co to niby jest ? Szczerze mowiac slabo sobie wyobrazam mozliwosc komunikacji bez uzywania socketow (oczywiscie mowimy o TCP/IP lub UDP a nie o pisaniu wlasnego protokolu niskopoziomowego ;p). No chyba, ze korzystasz bezposrednio ze sterownika karty sieciowej...

0

Jest sobie w systemie tzw. stos TCP/IP, i jest biblioteka Winsock, będąca nakładką na różne protokoły, nie tylko internetowe. Ale pomijanie socketów (czyli w zasadzie pisanie ich na nowo) to głupi pomysł, chyba że rzeczywiście chcemy coś osiągnąć niskopoziomowo.

Do pytającego: w Windows do „bezpośredniego” programowania sieciowego stosuje się właśnie wbudowaną w system bibliotekę winsock.

0

Ale na pewno da się to przecież zrobić bez tych socketów :), bo w tej chwili bardzo mi życie utrudniają.
Na prawdę nie ma nic do zastąpienia?

0

Ściągnij sobie pcap z http://www.winpcap.org/ . Ściągnij też devpacka (WinPcap Developer's Packs_4_0_2.zip lub nowszy) w którym znajdziesz headery i sample, a w jednym samplu jest pokazane jak wysyłać pakiety.

0

Chcesz mieć TCP/IP bez socketów? Głupi pomysł. To tak jakbyś chciał pisać grę i zamiast bibliotek grafy chciałbyś użyć bezpośrednio sterownika. Albo jakbyś chciał obsługiwać pliki przez sterownik dysku.

Dużo roboty i na 99% ci się nie uda. Jeśli "sockety bardzo ci życie utrudniają" to się ich naucz! Jeśli nie idzie ci z jakąś biblioteką, to na pewno nie jest wina biblioteki!

Kolejny przykład: Mi kiedyś nie szło z biblioteką std. Jednak kiedy próbowałem stworzyć własne klasy pojemnikow (można się domyślić z jakim skutkiem) jakoś się przekonałem do std...

0

@sapero - dzięki wielkie ;p
@olo16 - na pewno masz racje, ale póki sam się nie przekonam, nie uwierzę Tobie ;p

0

A jakiego używasz środowiska? Np. Borland ma fajny example...

0

Na start powiem, że tego wincap nie znam. Radzę jednak nauczyć się socketów, bo dojdziesz w końcu do momentu, w którym będziesz chciał zrobić coś, czego wincap nie obsługuje... Nie wiem też, czy działa pod innymi systemami - a z pozoru nie działające winsockety bardzo łatwo dostosować pod np. linuksa.

Same sockety też nie są tak straszne jak się wydają ;-P

0

Używam Visuala, a dokładnie Visualów ;-P (6,8).

Ale wy się o mnie troszczycie :)

0

Hmm... To nie wiem jak w Visualu. Nawet nie wiem jaka tam jest biblioteka (mfc? .net? coś jeszcze innego?), ale znając M$ to się nie dziwie że sprawia problemy. Ja mam BCB6 + INDY, więc internet mi nie straszny ;) .

1 użytkowników online, w tym zalogowanych: 0, gości: 1