java klient server-udp czy tcp?

0

Witam,
mam kod źródlowy serwera czy ktoś mógł by mi powiedzieć czy to jest na udp czy na tcp?
pozdrawiam.

public class Serwer extends JFrame {
static ServerSocket gniazdoSerwera;
JTextArea tekst = new JTextArea();;
JScrollPane scroll = new JScrollPane(tekst);
static final int PORT = 50000;
static final int GRACZ_X = 0, GRACZ_O = 1;
static final char ZNAK_X = 'X', ZNAK_O = 'O';
private Gracz[] gracze = new Gracz[2];
static int[] plansza = new int[9];
static int biezacyGracz = GRACZ_X;

public static void main(String[] args) throws IOException{		
	Serwer okno = new Serwer("Kółko i krzyżyk - serwer");
	okno.init();
	okno.setDefaultCloseOperation(EXIT_ON_CLOSE);
	okno.show();
	
	for (int i=0; i<9; i++) {
		plansza[i] = 2;
	}

	try {
		gniazdoSerwera = new ServerSocket(PORT,2);
		System.out.println("Serwer wystartował");
	} catch(IOException ioException) {
		System.exit(1);
	}
	okno.dzialanie();
}

Serwer(String tytul) {
	super(tytul);
}

void init() {
	setSize(300, 300);
	setLocation(300,300);
	Container cp = getContentPane();
	cp.setLayout(new BorderLayout());
	JPanel plansza = new JPanel();
	tekst.setEditable(false);
	cp.add(scroll,BorderLayout.CENTER);
	tekst.setText("Czekam na klientów...\n");
	setVisible(true);
}
	
public void dzialanie() {
	for (int i=0; i<gracze.length; i++) {
		try {
			gracze[i] = new Gracz(gniazdoSerwera.accept(),i);
			tekst.append("Zgłosił się nowy klient.\n");
			gracze[i].start();
		}
		catch(IOException ex) {
			ex.printStackTrace();
			System.exit(1);
		}
	}
}

private class Gracz extends Thread {
	private Socket gniazdo;
	private BufferedReader in;
	private PrintWriter out;
	private int nrGracza;
	private char znak;
	protected boolean zajety = true;

	public Gracz(Socket socket,int number) throws IOException{
		nrGracza = number;
		znak = (nrGracza == GRACZ_X ? ZNAK_X : ZNAK_O);
		gniazdo = socket;			
		in = new BufferedReader(new InputStreamReader(gniazdo.getInputStream()));
		out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(gniazdo.getOutputStream())), true);
		out.println("Jesteś graczem \"" + znak + "\"\n");
	} 
	
	public void run() {
		try {
			while (true) {
				String napis = in.readLine();
				for (int i=0 ; i<9 ; i++) {
					if (napis.equals(String.valueOf(i))) {
						int pole = i;											
						plansza[i] = ((biezacyGracz == GRACZ_X) ? GRACZ_X : GRACZ_O);
						biezacyGracz = (biezacyGracz + 1) % 2;	
						gracze[biezacyGracz].ruchPrzeciwnika(pole);
					}
				}
			}
		} catch (Exception e) {
			System.out.println("Blad " + e);
		}
	}
	
	public void ruchPrzeciwnika(int pozycja) {
		if (biezacyGracz == GRACZ_X) {
			out.println(pozycja + "O");
		}
		else if (biezacyGracz == GRACZ_O){
			out.println(pozycja + "X");
		}
	
}

}

0

TCP bo uzywa klas ServerSocket i Socket.

0

ok dzięki a jak zrobić to na UDP?

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