#cpp #winsock Dzień dobry. Chciałem się zapytać o gniazda, ponieważ utknąłem na odbieraniu danych. Program działa "prawie" jak serwer www: przyjmuje dane i odsyła do przeglądarki 200 OK + nagłówki od CORS (dlatego prawie, nie potrzebne mi jest parsowanie urli, wywoływanie php itd). Obecnie gniazdo ustawione jest na nieblokowalne i pojawia się problem w tym, że od czasu do czasu zaraz po nawiązaniu połączenia recv() przyjmuje wartość -1,
Wszystko
Wszystkie
Archiwum
- 1
- 0
@ly000: Czekać, czyli lecieć z while aż pojawią się dane?
Może i racja z blokowaniem. Tylko jedno pytanie dodatkowo: czy OPTIONS oraz POST mają iść na tym samym gnieździe? Czy raczej odbieramy OPTIONS, odsyłamy przeglądarce nagłówki jakich chce i się rozłączamy?
Może i racja z blokowaniem. Tylko jedno pytanie dodatkowo: czy OPTIONS oraz POST mają iść na tym samym gnieździe? Czy raczej odbieramy OPTIONS, odsyłamy przeglądarce nagłówki jakich chce i się rozłączamy?
- 0
@ly000: Dziękuję :) Debilem jestem :P Tylko tak dla pewności: robimy retval = recv(), sprawdzamy w otrzymanym buforze jakie są nagłówki html i wyciągamy (int)content-length, jak tylko suma retval będzie większa niż content-length to odsyłamy własne nagłówki html razem z body i robimy shutdown(socket). Zgadza się?
#programowanie #cpp #winsock
Hej. Chciałbym skorzystać w cpp w podobnej funkcji jak javovy split. To znaczy łatwe rozdzielenie stringa na podstringi. Na stackowerflow jest taki temat : https://stackoverflow.com/questions/236129/split-a-string-in-c
Chciałbym skorzystać z drugiej podpowiedzi.
http://wklej.org/id/2555411/
Hej. Chciałbym skorzystać w cpp w podobnej funkcji jak javovy split. To znaczy łatwe rozdzielenie stringa na podstringi. Na stackowerflow jest taki temat : https://stackoverflow.com/questions/236129/split-a-string-in-c
Chciałbym skorzystać z drugiej podpowiedzi.
http://wklej.org/id/2555411/
@MlodyInformatyk: chodzi o to, że funkcja split zwraca referencję do wektora
- 2
@MlodyInformatyk: ten & to cześć typu zwracanego. czyli zwracasz std::vector &, czyli referencję na wektor.
#programowanie #cpp #winsock #sieci
Ma ktoś jakiś przykład działającego komunikatora TCP klient - serwer? w C++ Winsock?
Ma ktoś jakiś przykład działającego komunikatora TCP klient - serwer? w C++ Winsock?
- 0
- 0
Witajcie.
Tytułem wstępu:
Tytułem wstępu:
- 1
@InformatycznyNoobek:
Ja pierdziele co za studia... Teraz już prawie każdy używa się jakiejś biblioteki, w C++ przykładowo ASIO.
Po za tym jeżeli masz takie problemy to te studia nawet teorii nie uczą.
Co do prośby to ci nie pomożemy bo nie wiemy co za pakiety dostajesz, pakiety w TCP nie mają konkretnej określonej długości, mogą się dzielić, dlatego określa się tą transmisję jako strumieniową.
Jak odczytujesz pakiet to musisz wiedzieć
Ja pierdziele co za studia... Teraz już prawie każdy używa się jakiejś biblioteki, w C++ przykładowo ASIO.
Po za tym jeżeli masz takie problemy to te studia nawet teorii nie uczą.
Co do prośby to ci nie pomożemy bo nie wiemy co za pakiety dostajesz, pakiety w TCP nie mają konkretnej określonej długości, mogą się dzielić, dlatego określa się tą transmisję jako strumieniową.
Jak odczytujesz pakiet to musisz wiedzieć
@InformatycznyNoobek: No to nie jest spoko koleś najwyraźniej.
Wamać, studentów którym się chce powinno się pomagać jak się tylko da, a nie odsyłać "bo mnie się nie chce, niech inny zrobi".
Wrzuć tu przykładowe zadania.
Wamać, studentów którym się chce powinno się pomagać jak się tylko da, a nie odsyłać "bo mnie się nie chce, niech inny zrobi".
Wrzuć tu przykładowe zadania.
#socket #winsock #programowanie #cplusplus
Mam problem. Kompliluje kod serwera UDP pod VS2010 pojawia mi się błąd nr 10038
Z tego co widzę wszystko z socketami jest ok.
Mam problem. Kompliluje kod serwera UDP pod VS2010 pojawia mi się błąd nr 10038
Socket operation on nonsocket. An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
Z tego co widzę wszystko z socketami jest ok.
- 0
Ok już znalazłem o co chodzi. Nie zainicjalizowałem socketa
#socket #winsock #programowanie #cplusplus
Piszę właśnie (w winsock c++) serwer oraz klienta UDP. korzystam z strony, którą mi tutaj kiedyś poleciliście.
Mógłby ktoś to przetłumaczyć na bardziej zrozumiały dla laika w sieciówce język? wolałbym uniknąć wchodzenia na tematy j---a, deskryptorów, chyba że na prawdę jest to konieczne.
Patrząc po kodach serwerów i klientów które dostałem od znajomych wniosek który mi się nasunął jest
Piszę właśnie (w winsock c++) serwer oraz klienta UDP. korzystam z strony, którą mi tutaj kiedyś poleciliście.
Mógłby ktoś to przetłumaczyć na bardziej zrozumiały dla laika w sieciówce język? wolałbym uniknąć wchodzenia na tematy j---a, deskryptorów, chyba że na prawdę jest to konieczne.
Patrząc po kodach serwerów i klientów które dostałem od znajomych wniosek który mi się nasunął jest
pewnie coś przekręcę, ale:
bind - powoduje że inne sockety mogą się łączyć do twojego, powiedzmy że to stawia serwera.
connect - łączy się do jakiegoś serwera, który ma zbindowane jakiś adres, zazwyczaj się ten adres gdzieś ustala do którego się łączysz.
Więc mniej-więcej tak, bind dla serwera, connect dla clienta.
Ale ja piszę w javie, więc się pewnie nie znam :D Ja mam po prostu ServerSocket który binduje, i zwykły socket
bind - powoduje że inne sockety mogą się łączyć do twojego, powiedzmy że to stawia serwera.
connect - łączy się do jakiegoś serwera, który ma zbindowane jakiś adres, zazwyczaj się ten adres gdzieś ustala do którego się łączysz.
Więc mniej-więcej tak, bind dla serwera, connect dla clienta.
Ale ja piszę w javie, więc się pewnie nie znam :D Ja mam po prostu ServerSocket który binduje, i zwykły socket
- 0
@MlodyInformatyk: Wychodzący socket też czasem przydaje się zbindować na konkretny port (i IP jeśli maszyna ma kilka). Może być tak, że firewalle są otwarte tylko dla konkretnego IP i zestawu portów. Wtedy wychodząc z randomowego portu może cię nie przepuścić.
#cpp #winsock #programowanie #nauka
Hej. Znacie jakieś dobre materiały do nauki winsoc? Jakieś tutoriale? Książki? Najlepiej jakby były po polsku.
Hej. Znacie jakieś dobre materiały do nauki winsoc? Jakieś tutoriale? Książki? Najlepiej jakby były po polsku.
@MlodyInformatyk:
to (jest też PL wersja, ale polecam oryginał), a później to. Bonus - nauczysz się pisać niezależnie od systemu, a sockety z tego co wiem dość łatwo przepisuje się na winsock.
Te materiały z 1 linku są na tyle proste, że w 1 dzień powinieneś ogarnąć sockety. Dodatkowo też inne języki (np. python) też mają podobne API do socketów, więc za jednym zamachem ogarniesz bardzo szeroki temat.
to (jest też PL wersja, ale polecam oryginał), a później to. Bonus - nauczysz się pisać niezależnie od systemu, a sockety z tego co wiem dość łatwo przepisuje się na winsock.
Te materiały z 1 linku są na tyle proste, że w 1 dzień powinieneś ogarnąć sockety. Dodatkowo też inne języki (np. python) też mają podobne API do socketów, więc za jednym zamachem ogarniesz bardzo szeroki temat.
- 0
@AferaZaAfera: oo dzięki - to pierwsze wygląda ekstra
Chodzi mi tutaj o podstawową funkcję connect(), czy można ją wykorzystać do tego aby połączyć się z adresem 8.8.8.8 potwierdzając tym samym że mamy dostępne połącznie interenetowe? Gdzieś przeczytałem że to wystarczy - taki prosty PING. Jednak kiedy oglądałem źródła komendy ping.c to tam nie
Jedyny sposób na sprawdzenie czy faktycznie masz połączenie z internetem to wysłanie zapytania w ten internet i oczekiwanie że otrzymasz odpowiedź.