sockets/tcp - out of band - kanal danych pobocznych

0

Witam.
Od kilku dni szukam po sieci konkretnych informacji przeczytalem wiele artykułów na temat socketow. Napisałem server i klienta. Jednak wszystko testuje lokalnie na petli zwrotnej. No i mam problem. W komunikacji TCP istnieje takie cos jak wyjatki czyli w selekcie mozna to sprawdzac w exceptfds. Sa to out of band. Nie mam pojecia jak to uzywac w zadnym tutorialu, przykladach itp nie moge znalezc co z tym zrobic
tak samo w send() moge uzyc flagi MSG_OOB jak i w recv() no ale chodzi o to czy ktos moze mi wyjanic dokladnie o co w tym chodzi? Moze przeczytalem za duzo i dlatego nic z teog nie wiem :)
rozumuje to tak serwer wysyla dane do klienta cos sie popsulo po drodze i serwer otrzymuje exceptfds no super sprawdzam sobie teraz ze takie cos sie pojawilo (rozumie to tak ze doszlo do klienta juz troche danych ale nie wszystkie) no to odczytuje to za pomoca recv(,,,MSG_OOB) cos tam mam teraz nie wiem czy to ma 1 bajt czy moze miec wiecej po odczytaniu (bo z tych anglosaskich tutoriali sie nie dowiedzialem :) a polskich konkretnych calkowity brak ) wiem ze pisali ze nalezy czekac az te dane wszystkie powroca wiec znowu wydaje mi sie ze moze tych danych out of band jest wiecej niz 1 bajt :/ Nie mam tego jak wygenerowac - localhost ale w sieci pewnie czesto sie to pojawia i trzeba obsluzyc jakos. TUTAJ WLASNIE POTRZEBUJE PIERWSZEJ POMOCY JAK. No dobrze ale powiedzmy ze w select mi sie ustawi exception_fds odczytam sobie dane dla flagi MSG_OOB no i te dane chyba mam z powrotem wyslac (ale pewien nie jestem) powiedzmy ze to wysle teraz klient odbiera te dane recv z flaga MSG_OOB i co on ma z tymi danymi zrobic? Dolepic je do bufora w ktorym sobie zapisuje? poza tym czy to bedzie jakis fragment danych czy cala paczka do ponownego wyslania czyli np 124 bajty (przy zalozeniu ze wyslylam paczki po 124 bajty) czy moze tylko 1 bajt? Dobrze a TERAZ DRUGI PROBLEM dla skomplikowania calej sprawy. Wyczytalem dalej ze ten exception moze byc zamarkowany i wyslany jako normalny send (bez flagi - trzeba ustawic to w opcjach socketa itd.) no i teraz znowu pytanie co robic na kliencie z taka paczka gdzie jest troszke dobrych danych a troche zlych. Czy do bufora trzeba dolepic najpierw te dane zamarkowane a pozniej reszte? Prosze o pomoc. Mozliwe ze całkowicie zbłądziłem w tym gąszczu tym bardziej ze przez ten problem już kilka nocy zerwałem łącznie z dzisiejszą - ale stwierdziłem że czas zapytać kogoś kto już przeszedł ten problem. Jeśli komuś chciałoby się zamieścićprzykład byłoby super, ale jeśli ktoś wytłumaczy mi dokładnie pisemnie co z tym fantem zrobić będę również zadowolony. Pozdrawiam i dzieki za pomoc.

0

Czyam dalej i teraz juz mi sie w ogóle wydaje ze to moze do czegos innego sluzy i pomylilem calkowicie koncepcje. po prostu nie moge zrozumiec jak to ma dzialac. Help me :P

0

Chlopaki jednak znalazlem odpowiedz :) Dla zainteresowanych zamieszcze link. po prostu pomylilem sens tego wszystkiego. Zle pokojazylem slowa exeption w funkcji i out of band to jest uzywane calkiem do czegos innego i tutaj jest opis po polsku.

http://www.linuxpl.org/LPG/node100.html

W kazdym razie dziekuje wszystkim za uwage. Przperaszam w sumie za umieszczenie dodatkowego postu podczas gdy znalalzme rozwiazanie. Bylem zdesperowany juz tym poszukiwaniem :)

//q: dla zainteresowanych OOB: pod tym linkiem, na koncu tekstu, siedza dwie BARDZO wazne informacje:)

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