Autor Zpráva
Janča N.
Profil
Zdravím, pokouším se implementovat jeden autentizační protokol a potřebuji v jedné třídě, kde mám již vytvořené dva objekty (dva klienty - a, b), spojit tyto klienty přes Socket.

Normálně vím, jak socket spojit, ale tím, že je to v jedné třídě a pokud vytvořím např:

    ServerSocket sSocket = new ServerSocket(50);
            sSocket.accept();

Tak se vlákno na tom naslouchání (acceptu) zastaví a když se tedy budu chtít s klientem připojit bezprostředně poté

    ServerSocket sSocket = new ServerSocket(50);
            sSocket.accept();
Socket socket = new Socket("127.0.0.1", 50);

tak tam samozřejmě zpracování nedojde. Pokud vytvořím Socket socket = new Socket("127.0.0.1", 50); před Serverovým, tak mi vyhodí vyjímku, že port je už používán.


Nezná někdo nějaké elegantní řešení, jak v jedné třídě spojit dva klienty? Asi se vláknům nevyhnu, že?
joe
Profil
Janča N.:
A můžeš sem napsat, proč to chceš v jedné třídě? Podle mě to je běžné, že se pro každé spojení použije vlákno.
Janča N.
Profil
Původně to bylo z důvodu, že jsem myslela, že existuje nějaká metoda, která se přímo připojí na určitý port - bez toho serverového naslouchání.
Nicméně už je to vyřešené. Nejjednodušší řešení bývají nejlepší...a napadnou mi většinou až když nějak formuluju dotaz :) Tak se omlouvám za zbytečné vlákno ;)
joe
Profil
Janča N.:
Napíšeš sem jak jsi to udělala? :-) Už jsem Javu neviděl hodně dlouho a když jsem to chtěl zkusit, tak mi to nějak nešlo... díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: