- 
Data: 2017-12-05 23:46:44
 Temat: Re: from blocking to nonblocking server
 Od: fir <p...@g...com> szukaj wiadomości tego autora
 [ pokaż wszystkie nagłówki ]W dniu wtorek, 5 grudnia 2017 17:32:33 UTC+1 użytkownik fir napisał: 
 > his is offtopic but maybe someone here will/would know
 >
 > i dont like to read a weeks on tcp and sockets as this is a lot and confusing
 > (i prefer this time to spend on c/graphics etc)
 >
 > i got some old tcp-server (on winapi winsock2) code, that worked but it was
 > not tested/inspected for being ok and was yet only working in blocking mode
 >
 > the code goes
 >
 > int SetupBlockingWinsockServer()
 > {
 >
 > WSADATA wsaData;
 > WSAStartup(MAKEWORD(2,2), &wsaData);
 >
 > /// Creating socket
 >
 > servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
 >
 > SOCKADDR_IN sin;
 > sin.sin_family = PF_INET;
 > sin.sin_port = htons(1111);
 > sin.sin_addr.s_addr = INADDR_ANY;
 >
 > //bind
 >
 > int retVal = bind(servSock, (LPSOCKADDR)&sin, sizeof(sin));
 >
 > /// Trying to listen socket
 >
 > retVal = listen(servSock, 10);
 >
 > // Waiting for a client
 >
 > ServClientSock = accept(servSock, NULL, NULL); return
 1;
 >
 >
 > }
 >
 > (i skipped the few lines of retvalue checking for errors for clarity)
 >
 > my goal is just to turn it to non blocking without a lot of work but i would like
 to know this is ok
 >
 > i checked experimentally via message boxes that it "blocks" on accept call
 > (block may be euphemism a bit here as it hang real hard, when no client is run then
 not only hourglass-pointer is shown, not only app gets fully unresponsible and non
 redraws itself but even closing it form task manager is hard, its possible but takes
 few seconds to kill)
 >
 > what i did :
 >
 > i added some line thet is supposed to set socked as nonblocked and move accept to
 separate function which i call then periodically (from run frame event)
 >
 > int SetupBlockingWinsockServer()
 > {
 >
 > WSADATA wsaData;
 > WSAStartup(MAKEWORD(2,2), &wsaData);
 >
 > /// Creating socket
 >
 > servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
 >
 > SOCKADDR_IN sin;
 > sin.sin_family = PF_INET;
 > sin.sin_port = htons(1111);
 > sin.sin_addr.s_addr = INADDR_ANY;
 >
 > //bind
 >
 > int retVal = bind(servSock, (LPSOCKADDR)&sin, sizeof(sin));
 >
 > /// Trying to listen socket
 >
 > retVal = listen(servSock, 10);
 >
 > // set no blocking
 >
 > u_long no_block=1;
 > ioctlsocket(servSock,FIONBIO,&no_block);
 >
 > }
 >
 > int WaitForClientAccept()
 > {
 > /// Waiting for a client
 >
 > ServClientSock = accept(servSock, NULL, NULL);
 >
 > if(ServClientSock == INVALID_SOCKET) return 0;
 >
 >
 > u_long no_block=1;
 > ioctlsocket(ServClientSock,FIONBIO,&no_block);
 > return 1;
 >
 > }
 >
 > this last one is as i said run periodically on server app frame and when it return
 1 (it means it gett accepted connection?) i flag out both server code to not call it
 more and
 > client not to send more connections
 >
 > it seem to work but as this is my
 > own slight experimentation only i would like to get pproval/confirmation
 > that this is in fact ok
 >
 > is this ok or is there something wrong with it?
 >
 > (btw as a side questions, do i need those flaging out here, or if i connected i
 could not bother for flaging out more sendings for connections and checks for
 incomming connections? (i know it would be wastefull maybe to send it still 50 times
 a second after connection was accepted but besides this waste would it work? (if that
 would be work maybe sending it once a second would work as
 > automatic connection reboval when something would get disconnected?)
 >
 > tnx for answer if someone know whats goin on in that sockets/winsock, i got not
 much time for that
 >
 > (fir)
 
 moge dodac ze to chyba dziala ok
 - za to przelaczenie connecta w
 kliencie na nie-blokujacy chyba nie da sie tak prosto zrobic a nie
 moge nigdzie w google znalezc gotowego kodu jak to zrobic
 (a czytac o tym kilka/nascie/dziesiat godzin nie mam jakos checi bo to straszne
 smieci)
 
Następne wpisy z tego wątku
- 08.12.17 09:30 Roman Tyczka
- 08.12.17 17:58 fir
- 08.12.17 18:13 fir
Najnowsze wątki z tej grupy
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-10-31 Warszawa => Engineering Manager (doświadczenie w branży lotniczej lu
- 2025-10-30 Był neosędzia w składzie jest cofka w apelacji [dożywocie za potrójne zabójstwo]
- 2025-10-30 Warszawa => Lead SAP PP Consultant <=
- 2025-10-30 Poznań => Konsultant SAP HCM <=
- 2025-10-30 Warszawa => Junior Rekruter <=
- 2025-10-30 Warszawa => Senior SAP Consultant - PP area <=
- 2025-10-30 Zakrzewo => SAP HCM Consultant <=
- 2025-10-30 Gang przestępców napadających przestępców już rozbity! [CBŚP,media,prawny humor]
- 2025-10-30 Kraków => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu
- 2025-10-30 Kraków => Production Coordinator / Representant Product Dev <=
- 2025-10-30 Warszawa => Starszy Konsultant SAP - obszar PP <=
- 2025-10-29 szablon do pasty DIY
- 2025-10-29 Głośnik potrzebny
- 2025-10-29 Warszawa => Specjalista rekrutacji IT <=
- 2025-10-29 Rzeszów => International Freight Forwarder <=




![13 najczęstszych błędów przy wysyłaniu mailingu [© taramara78 - Fotolia.com] 13 najczęstszych błędów przy wysyłaniu mailingu](https://s3.egospodarka.pl/grafika2/mailing/13-najczestszych-bledow-przy-wysylaniu-mailingu-228007-150x100crop.jpg) 
![5 błędów, które mogą pogrążyć twój artykuł natywny [© DDRockstar - Fotolia.com] 5 błędów, które mogą pogrążyć twój artykuł natywny](https://s3.egospodarka.pl/grafika2/artykul-natywny/5-bledow-ktore-moga-pograzyc-twoj-artykul-natywny-229455-150x100crop.jpg) 
![Jak przygotować skuteczną kreację do mailingu. 7 praktycznych porad [© dizain - Fotolia.com] Jak przygotować skuteczną kreację do mailingu. 7 praktycznych porad](https://s3.egospodarka.pl/grafika2/mailing/Jak-przygotowac-skuteczna-kreacje-do-mailingu-7-praktycznych-porad-219161-150x100crop.jpg) 
![Dodatkowy urlop opiekuńczy i nowe umowy na okres próbny. Zmiany w Kodeksie pracy uchwalone [© virtua73 - Fotolia.com] Dodatkowy urlop opiekuńczy i nowe umowy na okres próbny. Zmiany w Kodeksie pracy uchwalone](https://s3.egospodarka.pl/grafika2/kodeks-pracy/Dodatkowy-urlop-opiekunczy-i-nowe-umowy-na-okres-probny-Zmiany-w-Kodeksie-pracy-uchwalone-250696-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 
 
 


