Files
netwerk-programming-eindopd…/core/src/netwerkprog/game/client/Client.java

72 lines
1.8 KiB
Java

package netwerkprog.game.client;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
public class Client extends Thread{
private int port;
private String hostname;
private boolean isConnected = true;
@Override
public void run() {
this.connect();
}
public Client(String hostname, int port) {
this.port = port;
this.hostname = hostname;
}
public void connect() {
System.out.println("[CLIENT] connecting to server on port " + port);
Scanner scanner = new Scanner(System.in);
try {
Socket socket = new Socket(hostname,port);
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
Thread readSocketThread = new Thread( () -> {
receiveDataFromSocket(in);
});
readSocketThread.start();
String input = "";
while (!input.equals("\\quit")) {
input = scanner.nextLine();
out.writeUTF(input);
}
isConnected = false;
socket.close();
try {
readSocketThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void receiveDataFromSocket(DataInputStream in) {
String received = "";
while (isConnected) {
try {
received = in.readUTF();
System.out.println(received);
} catch (IOException e) {
System.out.println("exception caught - " + e.getMessage());;
}
}
}
}