Vícevláknový server – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vícevláknový server – Java – Fórum – Programujte.comVícevláknový server – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Honza
~ Anonymní uživatel
393 příspěvků
6. 4. 2011   #1
-
0
-

Ahoj mam udelat server ktery vysila a prijima na nejakem portu a zvladne zpracovavat vic klientu paraelne.Pokud budu zpracovavat jen jednoho klienta tak je vsechno v poradku ale testovaci klient mi pak vypise ze nezpracovavam data paraelne.Nevite nekde co s tim? Tady je kod:



class Server {

private static int port = 3999;


public static void main(int sPort) throws IOException, InterruptedException {

try {
port = sPort;
} catch (Exception e) {
System.out.println("Chyba pri nacitani portu");
}

//test zda se nacetl spravny port
if (port < 3000 || port > 3999) {
System.out.println("Zvolili jste spatny port, zvolte port z intervalu 3000-3999 vcetne");
System.out.println("Vas port byl: " + port);
System.exit(1);
}
System.out.println("SERVER JE SPUSTENY NA PORTU: " + port);

ServerSocket serverSocket = new ServerSocket(port);
Socket klientSocket = null;



while (true) {
klientSocket = serverSocket.accept();
Pripojeni connection = new Pripojeni(klientSocket);
Thread vlakno = new Thread(connection);
vlakno.start();

}
}

/**
* Trida umoznuje spusteni vice vlaken
*/
public static class Pripojeni implements Runnable {
private static PrintStream out = null;
private static BufferedReader in = null;
private Socket klientSocket = null;

public Pripojeni(Socket socket) {
this.klientSocket = socket; //vytvoreni objektu
}
public void run() {
try {
in = new BufferedReader(new InputStreamReader(klientSocket.getInputStream()), 2001000);
out = new PrintStream(klientSocket.getOutputStream(), true);
.....

Nahlásit jako SPAM
IP: 147.32.93.–
Reklama
Reklama
ahl
~ Anonymní uživatel
8 příspěvků
6. 4. 2011   #2
-
0
-

Používáš statické proměnné(out a in) a ty jsou společné pro všechny instance. To znamená, že při vytvoření nové instance Pripojeni si přepíšeš in a out ve všech vláknech na novou hodnotu.

Nahlásit jako SPAM
IP: 84.42.162.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 21 hostů

Podobná vlákna

[C#] Server — založil Mutagen

Server za routerem — založil Figa

MS SQL server — založil Drmota L

[C#] Server client — založil gledy

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý