Jak przeczytać/nadpisać plik tekstowy na serwerze FTP.

0

Witam. Chcę stworzyć taką prostą "gierkę" (jak np. dwie osoby ruszają się kulkami po ekranie). Do tego jest mi potrzebne zapisywanie współrzędnych na serwerze FTP, ewentualnie gdzieś indziej. Tak więc potrzebne mi jest to w czasie rzeczywistym, gdyż sekundowe opóźnienia wszystko zniszczą. Fajnie było by, gdyby podać cały przykładowy kod z wyjaśnieniem ( o nie prosiłbym najbardziej, by nie prosić o pomoc drugi raz). Pozdrawiam i z góry dziękuję.

0

Nie mam dużego doświadczenia w pisaniu aplikacji klient serwer. Ale jakoś dziwnie to sobie wyobrażasz, że zapisywać masz cokolwiek na serwerze FTP. Owszem trzeba by było napisać serwer do uruchomienia - jeżeli obie osoby nie mają publicznego IP. Ale robiąc to na zasadzie łaczenia pod konkretne IP hostującego przez drugi klient obsłgujesz wszystko w wątku i przekazujesz współrzędne i inne dane, na przykład implementując też chat pomiędzy graczami. Do napisania czegoś takiego można użyć pakietu Synapse w VCL lub Simple TCP pod czystym WinAPI. W przypadku tego drugiego modułu, prosty przykład jest zawarty na: http://piechnat.pl/article/simpletcp.html a w przypadku pierwszego w paczce jest dokumentacja oraz przykłady użycia.

A i parafrazując Twoją rozbrajającą pisząc uczciwie bezczelnośc na końcu posta. Zapytam raz, bo drugi raz nie chce pytać, jeżeli oczekujesz gotowca, których na tym forum nie podajemy - to daj znać. Dam Ci gotowiec w postaci przeniesienia tego wątku do Kosza. Gdyż jeżeli nie chce się Ci pisać takiej gry samodzielnie, to napisz w dziale Oferty pracy sensowną ofertę ze stosownym wynagrodzniem oraz namiarami na siebie, a może znajdzie się ktoś, kto się tego podejmie.

0

chcesz, zeby było w czasie rzeczywistym: po stronie serwera działa aplikacja do której łączą się klienty po TCP. Jeden user przesuwa kulkę, klient wysyła info na serwer, serwer od razu przesyła do drugiego klienta i z głowy. Jeśli gra ma działać tylko po lanie, nie przez internet, to nawet nie musi być serwer pośredniczący, tylko połaczenie bezpośrednio ze sobą obu userów. Oczekujesz cały kod gry? No sorry, ale odpada, nikt tutaj Ci nie będzie pisał gry. Pomozemy, jeśli masz problem z konkretnym zagadnieniem, jak podasz kod który napisałeś i nie działa tak jak powinien.

0

Nie o to mi chodziło. Jak mówiłem o kodzie, to przykładowy na przesył, np. z komputera idzie na serwer (do pliku) "wskoczył kotek na płotek" A potem to czyta. Tylko o to. Cały kod gry chcę zrobić samemu, nawet mam kilka pomysłów. To też jest postrzegane jako bezczelna próba uzyskania gotowca? Jeśli tak, to przepraszam, nie o to mi chodziło. Ja po prostu praktycznie ani trochę nie rozumiem tych wątków, tak więc wybrałem łatwiejsze wyjście, czyli wpisanie współrzędnych do plików na serwerze, by je drugi gracz mógł przeczytać.

0

cóz, tylko zauważ, ze drugi gracz nie wie, że coś się zmieniło. Będzie musiał sprawdzić, czy godzina modyfikacji pliku jest taka sama jak ostatnio czy inna. Pomyśl też co się stanie, jesli 2 userów naraz się poruszy... Nie ma możliwosci żeby oboje naraz zapisali do pliku swoje położenie

0

Każdy gracz dostanie grę lekko zmodyfikowaną, właśnie z powodu kilku plików tekstowych, każdy gracz ma swój.

0

Twoje podejście do tej sprawy, M4C13Y, jest beznadziejne.
1.Każdy gracz miałby mieć własną instancję tej samej gry? Nie widzisz, że to po prostu jest złe?
2.Bez większego problemu można by wykraść dane do serwera FTP i oszukiwać w tej "grze" lub nawet i więcej.
3.Skorzystaj z normalnej bazy danych (jak MySQL) lub jakiegoś serwera pośredniczącego, który nie będzie trzymał tych danych nigdzie, tylko będzie przesyłał bezpośrednio pomiędzy klientami, uprzednio je sprawdziwszy (czy przypadkiem nie nastąpiła próba oszustwa).

0

Z tym, że ja po prostu tego nie rozumiem :( A z oszukiwaniem (a zresztą, co by oszukiwał? przejście o 50 w lewo) i co bardziej kradnięciem nie będzie problemu. To jest tylko coś to zabawy z przyjaciółmi.

0

Zrezygnuj z FTP (file transfer protocol) - jak sama nazwa wskazuje służy do przesyłania plików a nie reakcję w trybie rzeczywistym.

Czy masz dostęp do publicznego adresu IP, lub możliwość przekierowania portów? Oraz maszynę na której stałby serwer gry? Czyli przypuszczalnie twój komputer.
Jeśli tak poszukaj informacji o komunikacji TCP/IP. Nie napisałeś niestety jakiej wersji delphi używasz - do delphi 7 są dołączone dema a w śród nich przykładowy chat na komponentach ServerSocket i ClientSocket - bardzo łatwo jest go przerobić do twoich potrzeb.
Jeśli jednak nie masz możliwości hostować serwera gry samodzielnie, a nie chcesz inwestować w jakiś VPS pod kontrolą windows (bardzo droga zabawa na taki projekt) to musiałbyś podszkolić się np. w PHP i zakładając konto na darmowym hostingu stworzyć całą logikę i stan gry a komunikować się poprzez protokół HTTP. W delphi napisany byłby jedynie klient gry który komunikował by się ze stroną www gry.
Jest to jednak nieco bardziej zaawansowane, sądząc z twoich pytań nie masz dużego doświadczenia w programowaniu, więc skup się na 1 opcji, skoro ma to być tylko dla przyjaciół możesz użyć np. hamachi
by pokonać barierę braku publicznego adresu IP.

1 użytkowników online, w tym zalogowanych: 0, gości: 1