Martin Jedlička napsal(a):
public void listenClient(DCPPacket packet) { try { System.out.println("Ceka na pripojeni."); Socket client = m_serverSocket.accept();System.out.println("Akceptovane pripojeni z: " + client.getInetAddress());m_connect = new Connect(client, packet, m_dcpServer); m_connect.start();
Problem je tady:
class Connect extends Thread {
...
public void run() {
// poslani packetu klientovi
writePacket(m_packet);
// cteni packetu od klienta
readPacket();
// zavreni spojeni
close();
Ten kod na serveru prijme prichazejici spojeni od klienta,
spusti nove vlakno. Potud je vse v poradku.
Ale v tom novem vlakne pouze jednou zapise, jednou precte
a zavre spojeni. Takze se uskutecni prave jedna vymena.
Asi chcete aby vymena pokracovala, takze ten kod run()
musi byt ve smycce. Asi takto
class Connect extends Thread {
boolean runMore = true;
public void run() {
while(runMore) {
writePacket(m_packet);
readPacket();
if(neco_v_packetu_co_rekne_dost) runMore=false;
}
close();
}
Makub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Science email: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
