Witam ,
usiłuje nawiązać połączenie klient-serwer do przesyłania wiadomości od klienta do serwera, ale niestety mam problem z wysłaniem wiadomości jakby wątek się nie zamykał i czekał na kolejne dane
import java.io.IOException;
import java.net.Socket;
public class ClientTCP {
public static void main(String[]args) throws IOException, InterruptedException{
//nazwiazanie polaczenia z serwerem
Socket socket;
socket=new Socket("127.0.0.1",1234);
System.out.println("nazwiazalem polaczenie:"+ socket);
new Odbior(socket).start();
}
}
import java.net.*;
import java.io.*;
public class ServerTCP {
public static void main(String[] args) throws IOException{
ServerSocket serv=new ServerSocket(1234);
while(true){
//przyjecie polaczenia
System.out.println("oczekiwanie na polaczenie...");
Socket sock=serv.accept();
//tworzenie watku oblsui tego polaczenia
new Wysyl(sock).start();
}
}
}
import java.io.*;
import java.net.*;
public class Odbior extends Thread {
Socket socket;
BufferedReader socketReader;
public Odbior(Socket socket) throws IOException{
this.socket=socket;
this.socketReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
public void run(){
try {
//tworzenie strumieni danych pobieranych z klawiatury i dostarczanych do socketu
PrintWriter outp;
outp=new PrintWriter(socket.getOutputStream());
//komunikacja-czytanie danych z klawiatury i przekazywanie ich do strumienia
System.out.println("Wysylamy");
String str=socketReader.readLine();
outp.println(str);
outp.flush();
outp.close();
socketReader.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.*;
public class Wysyl extends Thread {
Socket socket;
BufferedReader socketReader;
public Wysyl(Socket socket)throws IOException{
this.socket=socket;
this.socketReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
public void run(){
String str;
try {
str=socketReader.readLine();
System.out.println("nadeszlo "+ str);
socket.close();
socketReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
prosiłbym o sprawdzenie kodu i ewentualne naprowadzenie na błąd