Witam,
robię prosta aplikacje w której będę używał socketów i już na początku mam problem. Mianowicie tekst wysłany od serwera nie dociera do klienta. Mógł by ktoś zerknąć i wskazach mi błąd.
SERWER
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server extends Thread
{
private ServerSocket serverSocket;
private OutputStream out = null;
private PrintWriter save = null;
public Server(int port)
{
try
{
serverSocket = new ServerSocket(port);
serverSocket.setSoTimeout(10000);
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void run()
{
while (true)
{
try
{
System.out.println("Waiting for client ");
Socket server = serverSocket.accept();
out = server.getOutputStream();
save = new PrintWriter(out);
save.print("Witaj kliencie, to ja, serwer.");
out.close();
save.close();
server.close();
} catch (IOException e)
{
e.printStackTrace();
break;
}
}
}
}
KLIENT
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class Client
{
Socket socket = null;
InputStream in = null;
BufferedReader load = null;
Client(int port)
{
try
{
socket = new Socket("localhost", port);
in = socket.getInputStream();
load = new BufferedReader(new InputStreamReader(in));
String tekst = load.readLine();
System.out.println(tekst);
load.close();
in.close();
socket.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
WYWOLANIE
if(source ==bServer)
{
System.out.println("Server");
Thread thread1 = new Server(123);
thread1.start();
}
if(source ==bClient)
{
System.out.println("Client");
Client client1 = new Client(123);
}