gra sieciowa - poker

Oglądasz archiwalną wersję wątku "gra sieciowa - poker" z forum pl.comp.lang.java



grz...@tlen.pl - 6 Maj 2006, 11:11
Witam,

prosty program który będzie wykorzystywał programowanie sieciowe.

architekturę jaką ma ta gra wykorzystywać, to klient - serwer.

w czym problem?

hmm.. jakiś opis programowania sieciowego w javie przydałby się,
oraz może jakieś pomysły jak się za to zabrać. nie mówię tu o

projektu, np. co będzie konkretnie obsługiwał serwer, jakie
czynności itp. sprawy.

pozdrawiam,
Grzesiek




Adam - 6 Maj 2006, 11:18

Witam,

prosty program który będzie wykorzystywał programowanie sieciowe.

architekturę jaką ma ta gra wykorzystywać, to klient - serwer.

w czym problem?

hmm.. jakiś opis programowania sieciowego w javie przydałby się,
oraz może jakieś pomysły jak się za to zabrać. nie mówię tu o

projektu, np. co będzie konkretnie obsługiwał serwer, jakie
czynności itp. sprawy.

pozdrawiam,
Grzesiek



google: java networking
pierwszy link:http://java.sun.com/docs/books/tutorial/networking/index.html
najlepiej będzie jak przeczytasz "All About Sockets"  i coś of kors o
wątkach

Pzdr,
Adam



Jarek 'true' Wasowski - 7 Maj 2006, 14:04
Jesli ma to byc proste rozwiazanie to polecam RMI do komunikacji
klient - server. A klienta w Swingu. ;)
Jesli ma byc to cos extra to servlet z spring + hibernate i
webservisy do komunikacji. A gui w SWT eclipsa ;)


Łukasz Grabski - 8 Maj 2006, 05:53

Jesli ma to byc proste rozwiazanie to polecam RMI do komunikacji
klient - server. A klienta w Swingu. ;)
Jesli ma byc to cos extra to servlet z spring + hibernate i
webservisy do komunikacji. A gui w SWT eclipsa ;)



A do czego Ci potrzebny hibernate w pokerze? he?




grzesiu - 8 Maj 2006, 14:22
no dobra, spoko, nie potrzebuje tu jakichkolwiek bajerów, chodzi mi
po prostu o to, zeby dalo rade zagrac przez siec partyjke. bo i
tak meritum tego problemu jest polaczenie, a nie caly program, wiec
raczej na tym sie skupiam.

mam pytanko jeszcze pytanko.
serwer bedzie przekazywal informacje o kartach jednego klienta, do
drugiego. oraz rozstrzygal, który z nich wygral aktualna partie.
czy korzystanie z PrintWriter i BufferedReader wystarczy absolutnie
zeby przeslac i integer i string?

wiem ze sa to moze pytania laikowe, ale jak juz wspomnialem, java
to dla mnie "czarna magia", osobiscie programuje w C++ i kombinuje
ten program z ksiazka w reku, bo implementacja w C++ jest o wiele
dluzsza :D a ja niestety nie mam czasu na to...
ogólny layout juz jest i wyglada jak wyglada :P

wiem równiez ze ktos z Was sie spyta, po co serwer w takim
"wielkim" i bardzo "zlozonym" programie. odpowiedz moja jest taka: o
wiele wiecej rzeczy jest zwiazanych z siecia przy architekturze
klient - serwer, niz w polaczeniu klient - klient. (nie wspominam tu
o architekturze rozproszonej, p2p)

Pozdrawiam,
Grzesiek



kep...@vp.pl - 8 Maj 2006, 14:33
Moze jakies nakierowaniem bedzie
http://www.javaworld.com/jw-12-1996/jw-12-sockets.html
http://java.sun.com/docs/books/tutorial/networking/sockets/index.html

wiem równiez ze ktos z Was sie spyta, po co serwer w takim
"wielkim" i bardzo "zlozonym" programie. odpowiedz moja jest taka: o
wiele wiecej rzeczy jest zwiazanych z siecia przy architekturze
klient - serwer, niz w polaczeniu klient - klient. (nie wspominam tu
o architekturze rozproszonej, p2p)



Mozna widziec co szerzej mial Pan na mysli ?

Pozdrawiam Sławek Stec



grzesiu - 8 Maj 2006, 15:34
Prosze nie pisac do mnie Pan, nie obraze sie, jak bedzie sie
pisalo na ty :)

a chodzilo mi o to, iz robie to w architekturze klient - serwer,
albowiem jest to dla mnie ciekawsze do opisania w projekcie oraz wiem,
ze osobiscie ja sam napisze wiecej na ten temat, anizeli na
architekture klient - klient :)

co do 2giego linka, to juz przerzalem, zreszta jest powyzej kilka
postów :)
wnioskuje, ze sie da, skoro wystapilo nakierowanie ;) oraz tak
zrozumialem, ze ten BufferedReader przechwytuje wszystko, a wiec
wystarczy przekonwertowac jak cos string na int i po krzyku ;))

Pozdrawiam,
dzieki za linki
Grzesiek



grzesiu - 8 Maj 2006, 15:39
wlasnie przegladam drugi Panski link, zapowiada sie obiecujaco :)

dzieki i pozdrawiam :)



Brzezi - 8 Maj 2006, 16:48

czy korzystanie z PrintWriter i BufferedReader wystarczy absolutnie
zeby przeslac i integer i string?



Tutaj lepiej (Data|Object)*Stream

Pozdrawiam
        Brzezi



grzesiu - 10 Maj 2006, 06:10
a jak zrobić, żeby w tym samym momencie, serwer przyjmował strumień
wysyłany od wielu (w tym przypadku 2óćh) klientów ?
jak na razie próbuje zrobić coś a'la mini czat, i mogę się
podłączyć do serwera 2gim klientem, ale jak wysyłąm jakikolwiek
strumień, to nie dochodzi. dochodzi, ale dopiero jak 1szy klient się
rozłączy.

try {
        serwer = new ServerSocket(7);
                while(true){ //główna pętla serwera
                        try{
                                while(true){ //główna pętla połączenia
                                        gniazdo = serwer.accept();
                                        System.out.println("Jest polaczenie");
                                                while(true){
                                                strumienWe = new BufferedReader(new
InputStreamReader(gniazdo.getInputStream()));
                                                        strumienWy = new PrintStream(gniazdo.getOutputStream());
                                                        echo=strumienWe.readLine();
                                                        System.out.println(echo);
                                                        }//od while
                                        }//od while

}//od try



powyżej jest główna część programu (serwer). wiem że na razie

to, żeby w tym samym momencie serwer mógł przyjmować strumienie.

pozdrawiam
Grzesiek



grzesiu - 10 Maj 2006, 08:54
i jeszcze jeden mam problem, albowiem, mam JTextField i chcę, po
wprowadzeniu jakiegoś ciągu znaków, i naciśnięciu klawisza Enter,
aby ten ciąg znaków został przesłany do serwera.
jeżeli uruchomię prostego klienta, to jestem w stanie przesłać
jakiś ciąg znaków do serwera i wówczas jest on po tamtej stronie
wyświetlony.
gorzej właśnie z JTextField.
jeżeli chodzi o tego prostego klienta, to jest on uruchamiany w
konsoli poleceń (cmd), serwer również, natomiast aplikacja z tym
JTextField'em uruchamiana jest jako GUI.

powyżej w poście macie kod serwera, a poniżej przedstawiam tego
prostego klienta, który również jest zaimplementowany w aplikacji:

import java.net.*;
import java.io.*;

public class client {
        public static void main(String[] args) {
                Socket gniazdo;
                String host = "localhost";
                BufferedReader strumienEcha, strumienWe;
                PrintStream strumienWy;
                String echo;

                if (args.length 0) {
                        host = args[0];
                }

                try {
                gniazdo = new Socket(host, 7); //port 7 jest standardowym portem
obslugi echa
                strumienWe = new BufferedReader(new
InputStreamReader(gniazdo.getInputStream()));  //czytaj z serwera
                strumienWy = new PrintStream(gniazdo.getOutputStream());
                strumienEcha = new BufferedReader(new InputStreamReader(System.in));
//czytaj z klawiatury
                while(true){
                        echo=strumienEcha.readLine();
                        if (echo.equals(".")) break; //znak . oznacza koniec pracy
                        strumienWy.println(echo); //wyslij do serwera
                        //System.out.println(strumienWe.readLine()); //wyslij na monitor
                        }
                }

                catch (UnknownHostException e) {
                System.err.println(e);
        }

        catch (IOException e) {
                System.err.println(e);
        }

}
}



znaczy bez linijki:
jest zaimplementowany, ale wiem że to nie robi różnicy :P ;)

Pozdrawiam,
Grzesiek



grzesiu - 10 Maj 2006, 10:36
dobra, stwierdzilem iz ten klient w aplikacji, powinien znajdowac
sie równiez po linijce:
public static void main(String[] args) {
bo ma on dzialac non stop, niezaleznie od zdarzenia, a nie
wywolywac pokolei z danej metody.
ale jest problem po przeniesieniu tego kodu, wlasnie w ta glówna
metode (main), albowiem pisze mi iz zmienna echo, nie moze byc
non-static. jak zrobic, zebym pózniej mógl wlasnie do tej niby
non-static zmiennej, wrzucic to co jest w JTextField?

moje przypuszczenia sa takie, iz musze ten kod, uruchamiajacy
klienta, umiescic w jakiejs metodzie ? moze jakiejs klasie ? i
pózniej utworzyc obiekt, do którego bede przekazywal wlasnie
te zmienna w której jest zapisywany tekst, z JTextField?
jak to zrobic jezeli sie nie myle?

Pozdrawiam,
Grzesiek


Programowanie sieciowe - oczekiwanie na potwierdzenie odebrania komunikatu
Program badajacy poprawnosc polaczen sieciowych
emulator telefonu i programowanie midletu sieciowego
Polaczenie sieciowe (linux - windows)
  • pielegniarki opieka kielce
  • czemu po moim routerze jest getaway a potem
  • kretynskie smsy od roznych reklamodawcow
  • smieszne teksty historie
  • drzewka do kupienia
  • katowice awf fizjoterapia egzaminy
  • java;warcaby
  • tunezyjski aar 1066 1820
  • o symbianie na powaC2 nie czyli
  • Zbieranina wiadomości z for dyskusyjnych || Indeks