Sice to neni presne ono, ale navedlo me to na myslenku, kde je problem. Ja hlavne pokazde (kdyz chci neco poslat serveru) navazuju spojeni od klienta a na serveru na spojeni znova cekam metodou accept(), coz je blbost, ze? Predpokladam, ze toto staci udelat jen na zacatku a pak uz jen vyuzivat metod pro cteni a zapis.
Diky moc. M. Martin Kuba napsal(a):
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
