Chlorek Temat założony przez niniejszego użytkownika |
Winsockety - Jak wysyłać pakiety do serwera » 2012-03-06 21:06:33 Witam, problem jak w temacie, chcę wysłać pakiet do wybranego serwera za pomocą winsocket'ów, pakiety odbierane przez serwer muszą być odpowiednio kodowane (big-endian), do tego używam funkcji ntohl(), jednak przygotowany pakiet nie dociera do serwera (serwer go w ogóle nie dostaje), wszelkie inne pakiety docierają. Mój kod: char PacketID = HANDSHAKE; send( sock, & PacketID, 1, 0 ); sLenght = 7; send( sock,( char * ) ntohs( sLenght ), 1, 0 ); send( sock,( char * ) ntohl( atol( "Chlorek" ) ), 7, 0 );
|
|
CodeMeister |
» 2012-03-06 21:26:15 Ascii to long..? dodaj obsluge bledow - może tam sie cos krzaczy albo blad jest po stronie servera |
|
Chlorek Temat założony przez niniejszego użytkownika |
» 2012-03-06 21:36:50 To co wysyłam to nickname do logowania, muszę go przerobić najpierw na long (taką zmienną przyjmuje htonl/ntohl), a co do błędu serwera to raczej nie możliwe, sprawdzałem na dwóch serwerach (jeden pisany w java'ie, a drugi w c++), ten w c++ wypisuje wszystkie pakiety jakie dostaje i nic nie pisze o tym bym dostał pakiet "Chlorek". #Edit A co do debugowania, to być może błąd w ntohl() ? Jeśli przekonwertowaną tym wartość próbuję wyświetlić (strumieniem cout, czy też własnoręcznie napisaną funkcją) klient się wysypuje. |
|
CodeMeister |
» 2012-03-06 21:46:11 <Double post> |
|
CodeMeister |
» 2012-03-06 21:46:55 A wyslij sam tekst tzn. nie pakuj go w żadna funkcję |
|
Chlorek Temat założony przez niniejszego użytkownika |
» 2012-03-06 21:55:51 Chciałbym żeby to było tak proste, jednak twórca aplikacji serwera pomyślał, aby używać sieciowego porządku byte'ów (network byte order) do komunikacji, wysyłając do serwera pakiet Chlorek, on stwierdza, że dostaje ponad 1700 znaków, a oczekuje nie więcej niż 32. Próbowałem też wysyłać tablicę bajtów ale to nic nie zmieniło. |
|
CodeMeister |
» 2012-03-06 22:05:20 A moze aton()i ntoa() ascii to network... |
|
Chlorek Temat założony przez niniejszego użytkownika |
» 2012-03-06 22:19:13 A dowiem się jaki header należy dołączyć, bo dla mojego kompilatora funkcja jest nieznana? |
|
« 1 » 2 |