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
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.
[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.
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...
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.
Ś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.
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...
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
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.