Klasa obslugujaca TCP i UDP

0

Wiem ze takie posty zdarzaja sie czesto lecz nie znalazlem odpowiedniego..
Chcialbym miec klase (powiedzmy 2 klasy) KlientTCP, KlientUDP i abym mogl latwo (czytaj np przez operatora << , >> ) wysylac i odbierac dane..
Skorzystalem z klasy PracticalSocket lecz mimo ze jest crossplatformowa to jednak klient UDP prz debugowaniu daje Segmentation Fault a przejzalem wszystko..

Czy ktos moglby mi napisac taka prosciutka klase?
I jeszcze jakby byla crossplatformowa to w ogóle bym chyba latal (na crossplaformowa moge sobie zamienic (WIN, LIN) )
Bardzo was prosze o pomoc bo jestem tak blisko skonczenia swojego najwiekszego dziela a takie cos nie moge przejsc (najbardziej zalezy mi na klientcie UDP )

0

nie wiem dokladnie co to jest to UDP. niech ktos prosze objasni roznice miedzy TCP i UDP.

pozdr
Mariusz

0
aristo napisał(a)

nie wiem dokladnie co to jest to UDP. niech ktos prosze objasni roznice miedzy TCP i UDP.

pozdr
Mariusz

http://www.google.pl/search?hl=pl&q=r%C3%B3%C5%BCnice+mi%C4%99dzy+TCP+a+UDP&spell=1
http://www.google.pl/search?hl=pl&q=UDP&btnG=Szukaj+w+Google&lr=lang_pl

0

juz klase sam sobie prawie napisalem tylko nie wiem jak zbinodwac port tzn:

local_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); 

jest wszystko wporzo a jak zbinodwac na ADDR_ANY ?
no MSDN napisal:

If an application does not care what local address is assigned, specify the manifest constant value ADDR_ANY for the sa_data member of the name parameter. This allows the underlying service provider to use any appropriate network address, potentially simplifying application programming in the presence of multihomed hosts (that is, hosts that have more than one network interface and address).

to mam po prsotu napisac ze sie wona ADDR_ANY?

a znienna INADDR_ANY to jest to samo tylko z odwrotna notacja ??

Jakiej wartosci bym nie uzyl to mam segmentation fault (sygnal SIGSEGV) tzn GDB tak mowi ale jak biore continue to program dziala..

0

Zawsze możesz dać

 "0.0.0.0"
0

ale przez takie cos i te ADDR_NY i INADDR_ANY mam w debugerze takie cos podczas bindowania portu UDP :/

gdb: kernel event for pid=724 tid=3864 code=EXCEPTION_DEBUG_EVENT) ContinueDebugEvent (cpid=724, ctid=3864, DBG_CONTINUE);
gdb: kernel event for pid=724 tid=3864 code=EXCEPTION_DEBUG_EVENT)
gdb: Target exception EXCEPTION_ACCESS_VIOLATION at 0x77ea3c00

Program received signal SIGSEGV, Segmentation fault.
0x77ea3c00 in RpcRaiseException () from C:\WINDOWS\system32\rpcrt4.dll

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