Jaklub Opublikowano 1 Marca 2010 Udostępnij Opublikowano 1 Marca 2010 w tym temacie będę pisał swoje pytania dotyczące obsługi Winsocka, ponieważ niewiele rzeczy wiem na jego temat, a problemów najprawdopodobniej będzie więcej. przenosiny projektu z 39dll są ogólnie dużo bardziej bolesne niż przewidywałem. ;p 1. kiedy wysyłam pakiety w pętli while, pakiety są wysyłane i docierają. gdy jednak klient został dopiero zaakceptowany lub wiadomość jest wysłana poza pętlą, pakiety gubią się. połączenie jest TCP, nieblokujące. co może to powodować? czy użycie funkcji select pomoże? kod pokażę, kiedy będzie potrzeba (tego nie wiem) 2. znacie jakieś dobre kursy winsocka pisane zupełnie łopatologicznie? google nie bardzo mi pomógł, być może coś przegapiłem z góry dzięki każdemu, kto będzie chciał napisać chociaż jedno zdanie w tym lub tym temacie. ps. tak, wiem, że ostatnio zasypuję was pytaniami o obsługę sieci w C Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 1 Marca 2010 Udostępnij Opublikowano 1 Marca 2010 http://www.amazon.com/TCP-IP-Sockets-Pract...s/dp/1558608265 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Marca 2010 Administratorzy Udostępnij Opublikowano 1 Marca 2010 Kurcze, ktoś tu u nas robił grę online w C# bodaj, wiem, że to inny język, ale też bez 39dll... nie wiem czy to nie Boro Casso czasem? Pamiętam, że ktoś mi na GG kiedyś o tym pisał, że zrobił własny system do wysyłania danych. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 3 Marca 2010 Udostępnij Opublikowano 3 Marca 2010 Sprawdzasz błędy zwracane przez funkcje Winsocka ? Prawdopodobnie gniazdo w kliencie nie jest gotowe do wysłania bufora albo w serwerze do odebrania pakietu. (WSAEWOULDBLOCK ?) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 3 Marca 2010 Autor Udostępnij Opublikowano 3 Marca 2010 dzięki za odpowiedzi Sprawdzasz błędy zwracane przez funkcje Winsocka ? Prawdopodobnie gniazdo w kliencie nie jest gotowe do wysłania bufora albo w serwerze do odebrania pakietu. (WSAEWOULDBLOCK ?) żadne błędy nie są zwracane, kiedy to wysyłam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 3 Marca 2010 Udostępnij Opublikowano 3 Marca 2010 Przypomniało mi się, że w książce 3D game engine programming był jeden rozdział, który wprowadzał do winsock'a. O ile dobrze pamiętam była tam stworzona bardzo łopatologiczna implementacja prostego komunikatora i wszystko było napisane bardzo zrozumiale. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 4 Marca 2010 Udostępnij Opublikowano 4 Marca 2010 Użyj funkcji select przed tym wywołaniem send poza pętlą, żeby poczekać aż socket będzie zapisywalny. Chociaż takie coś nie jest zalecane w modelu nieblokującym -- zapisywalność gniazd powinno się sprawdzać w głównej pętli na wielu gniazdach i wtedy wysyłać dane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się