• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Własny serwer z kolejką dostępu.

Object Storage Arubacloud
0 głosów
196 wizyt
pytanie zadane 9 listopada 2023 w Systemy operacyjne, programy przez tubylec01 Obywatel (1,260 p.)
Cześć,

Chciałbym zrobić serwer do konkretnego zadania.

Każda komputer wysyłająca zapytanie do serwera miałaby dostać wartość liczbową większa o 1 od ostatniej wydanej liczby, dla przykładu:

Pierwsze zapytanie otrzyma wartość 10000
Drugie zapytanie otrzyma wartość 10001
Trzecie 10002 i tak dalej...

Ważne w tym wszystkim jest to aby nie wystąpiło zdublowanie wartości (nikt nie może otrzymać tego samego numerka).

Czy chciałby ktoś mnie naprowadzić jak by to miało wyglądać, Linux, windows, jak obsłużyć kolejkę, dwa zapytania równolegle?

Obsługą numerków miałby się zająć python, na żądanie zewnętrzne zwiększyłby o jeden ostatnią wartość, zapisał ją do notatnika. Dalej wartość z notatnika byłaby wysłana jako odpowiedź serwera (nie wiem czy mój pomysł jest dobry)

Jeśli potrzeba dokładniejszych informacji to postaram się sprecyzować odpowiedzi na zadane pytania ;)
1
komentarz 9 listopada 2023 przez Oscar Nałogowiec (29,290 p.)
Co rozumiesz przez "zapytanie" - bo najprościej zapytaniem może być po prostu podłączenie się do serwera. Niektóre standardowe serwery TCP tak działają np. date.

W takim przypadku masz bardzo krótkie sesje zapytanie<>odpowiedź to najprościej byłoby po prostu w pętli (accept - send - close). Jednowątkowo, nawet bez selecta.

Trochę nie rozumiem z tym notatnikiem. Konkretne pytanie - czy te numerki mają by pamiętane trwale czy nie (po wyłaczeniu i ponownym włączeniu serwerka znowu daje 1000 albo kontynuje wcześniejsze liczenie). Jeśli ma być trwałe - trzeba zapisać gdzieś w pliku.
komentarz 9 listopada 2023 przez adrian17 Ekspert (344,860 p.)
Też nie rozumiem pytania - ogólnie po co te numerki, bo same dla siebie to chyba nie są?
komentarz 9 listopada 2023 przez adrian17 Ekspert (344,860 p.)
I tylko dodam że jeśli masz tam jakąkolwiek bazę danych, choćby lokalny sqlite, to zwykła tabelka z kolumną z autoincrement da Ci zawsze-rosnący indeks zapamiętywany w bazie.
komentarz 10 listopada 2023 przez tubylec01 Obywatel (1,260 p.)
edycja 10 listopada 2023 przez tubylec01
Pomysł na stworzenie tego inspirowany pewnym zachowaniem, a pomyślałem, że jest chyba fajny pomysł (a tego zawsze brakuje) to chciałbym cos takiego zrobić.

Nie ma żadnej bazy danych, nie ma żadnego serwera, w sumie nic nie ma jeszcze. Jest potencjalny komputer na którym mogę postawić linuxa.
komentarz 10 listopada 2023 przez tubylec01 Obywatel (1,260 p.)

@Oscar, Nie mam żadnego serwera jeszcze, żeby się podłączyć. Co rozumiesz poprzez "podłączenie się do serwera"? Dobrze rozumiem, że serwer miałby swój statyczny adres IP i bym go odpytywał po tym adresie?

W takim przypadku masz bardzo krótkie sesje zapytanie<>odpowiedź to najprościej byłoby po prostu w pętli (accept - send - close). Jednowątkowo, nawet bez selecta

Możliwe, nie mam doświadczenia, zęby się tutaj wypowiedzieć.

 

 Trochę nie rozumiem z tym notatnikiem. Konkretne pytanie - czy te numerki mają by pamiętane trwale czy nie (po wyłaczeniu i ponownym włączeniu serwerka znowu daje 1000 albo kontynuje wcześniejsze liczenie). Jeśli ma być trwałe - trzeba zapisać gdzieś w pliku.

Tak, to ważne aby numerki były pamiętane trwale, po ponownym uruchomieniu ma być kontynuowanie dlatego myślałem o pliku tekstowym.

1
komentarz 10 listopada 2023 przez adrian17 Ekspert (344,860 p.)
edycja 10 listopada 2023 przez adrian17

Wciąż nie napisałeś, co właściwie chcesz zrobić i po co. Z pewnością całym celem aplikacji nie jest odpowiadanie rosnącymi numerami...? (Wtedy to jest równoważne do "jesteś 1523 osobą która odwiedziła stronę".) W tytule mówiłeś o "kolejce dostępu", ale potem jedynym o czym pisałeś to o tych rosnących liczbach.

Tak, to ważne aby numerki były pamiętane trwale, po ponownym uruchomieniu ma być kontynuowanie

W każdym razie, no, to brzmi jak zadanie domowe z pierwszej (nie dosłownie) lekcji baz danych; zamiast grzebania w jakimś pliku tekstowym.

Nie ma żadnej bazy danych, nie ma żadnego serwera

No, ale mówiłeś że będziesz stawiał jakiś serwer z Pythonem - to mówię w czasie teraźniejszym w sensie o projekcie. Nawet bez osobnej aplikacji serwerowej, zwykły lokalny SQLite jest w zasadzie po prostu "bezpieczniejszym plikiem tekstowym, edytowanym SQLem".

komentarz 10 listopada 2023 przez tubylec01 Obywatel (1,260 p.)
edycja 10 listopada 2023 przez tubylec01

Wybacz, celem jest tylko odpowiadanie rosnącymi numerami (może w przyszłości rozbuduję to o logi z użytymi numerami i datą kiedy je pobrano, a taką wersją pro będzie jeszcze informacja, kto [nazwa komputera, adres MAC] jaki numerek dostał)  ma to być coś na zasadzie serwer z numerami seryjnymi, nie jest to zadanie domowe ani żaden projekt na studia. 
Zainspirowałem się właśnie numerami seryjnymi urządzeń, które w poprzedniej pracy znajdowały się lokalnie na każdym urządzeniu (różna pula dla każdego). Pomyślałem, też że to jest fajny przykład (zadanie dla siebie) aby wejść chociaż trochę w "serwery".

"Kolejka dostępu" wynika to z tego, że potencjalne numery seryjne nie mogą się dublować, to też chyba ciekawe zagadnienie do nauki odnośnie serwerów, żeby obsłużyć dwa zapytania, które przyjdą w jednym czasie. Nie wiem co więcej tutaj mogę dodać, jeśli są dalsze pytania chętnie odpowiem na ile potrafię.

No, ale mówiłeś że będziesz stawiał jakiś serwer z Pythonem - to mówię w czasie teraźniejszym w sensie o projekcie. Nawet bez osobnej aplikacji serwerowej, zwykły lokalny SQLite jest w zasadzie po prostu "bezpieczniejszym plikiem tekstowym, edytowanym SQLem".

Python jest bardzkiej opcją/pytaniem, nie jest to żaden wymóg. "zwykły lokalny SQLite" dobrze rozumiem, że proponujesz zrobić to lokalnie na komputerze, zamiast na drugim komputerze (serwerze)?

Idąc od początku, co lepiej wybrać Windows(mam XP, albo 10) czy lepszy będzie Linux - osobiście wolałbym Linux'a, żeby lepiej go poznać)

komentarz 10 listopada 2023 przez adrian17 Ekspert (344,860 p.)

"Kolejka dostępu" wynika to z tego, że potencjalne numery seryjne nie mogą się dublować, to też chyba ciekawe zagadnienie do nauki odnośnie serwerów

Tu akurat nie ma nic ciekawego ;D Bazy danych z automatu coś takiego obsługują. Wrzucasz nowy wiersz do tabeli z kolumną autoincrement i z definicji dostaje nowy rosnący indeks, niezależnie ile takich operacji robisz jednocześnie. To też nie jest tematyka serwerów tylko podstawy aplikacyjnych baz danych.

dobrze rozumiem, że proponujesz zrobić to lokalnie na komputerze, zamiast na drugim komputerze (serwerze)?

Nie rozumiem pytania. Jak chcesz żeby aplikacja Pythonowa działała tylko lokalnie to możesz ją postawić lokalnie (lub w wirtualce czy co tam chcesz); jeśli chcesz żeby była dostępna z internetu, to musisz mieć jakiś zewnętrzny serwer, VPS etc. To czy inne rzeczy chodzą na tym samym fizycznym serwerze co Python z aplikacją webową to zupełnie inny temat - i nic nie broni, żeby były na tym samym, niezależnie czy to wbudowany w Pythona SQLite czy osobna aplikacja Postgresa, MySQLa etc.

czy lepszy będzie Linux - osobiście wolałbym Linux'a, żeby lepiej go poznać

Śmiało.

Natomiast skaczesz tutaj po kilku tematach na raz i sugeruję osobno się nauczyć jak zrobić jakąkolwiek aplikację webową, jak gadać z bazą danych, jak odpalać to wszystko na serwerze, jak taki serwer obsługiwać - to wszystko osobne tematy.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 95 wizyt
pytanie zadane 22 maja 2023 w C i C++ przez Dani Obywatel (1,450 p.)
0 głosów
1 odpowiedź 172 wizyt
pytanie zadane 31 marca 2020 w C i C++ przez SensejChmiel Nowicjusz (180 p.)
0 głosów
1 odpowiedź 781 wizyt
pytanie zadane 8 września 2016 w Sprzęt komputerowy przez SebbaGamess Użytkownik (690 p.)

92,539 zapytań

141,381 odpowiedzi

319,465 komentarzy

61,926 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...