move client to fabric client
This commit is contained in:
parent
f8777ad035
commit
df825fa87b
2 changed files with 89 additions and 78 deletions
89
client-fabric/src/eu/e99/svc/client/fabric/SVCClient.java
Normal file
89
client-fabric/src/eu/e99/svc/client/fabric/SVCClient.java
Normal file
|
@ -0,0 +1,89 @@
|
|||
package eu.e99.svc.client.fabric;
|
||||
|
||||
import eu.e99.svc.AllTrustManager;
|
||||
import eu.e99.svc.Connection;
|
||||
import eu.e99.svc.SimplerVoiceChat;
|
||||
import eu.e99.svc.io.BinaryMessage;
|
||||
import eu.e99.svc.packet.AuthRequestPacket;
|
||||
import eu.e99.svc.packet.AuthResponsePacket;
|
||||
import eu.e99.svc.packet.AuthSuccessPacket;
|
||||
import eu.e99.svc.packet.ClientHelloPacket;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
|
||||
public class SVCClient {
|
||||
|
||||
public static void main(String[] args) throws NoSuchAlgorithmException, KeyManagementException {
|
||||
TrustManager[] trustManagers = new TrustManager[]{
|
||||
new AllTrustManager(),
|
||||
};
|
||||
|
||||
SSLContext sslContext = SSLContext.getInstance("TLS");
|
||||
sslContext.init(null, trustManagers, new SecureRandom());
|
||||
|
||||
SSLSocketFactory socketFactory = sslContext.getSocketFactory();
|
||||
|
||||
SVCClient voiceChat = new SVCClient("localhost", 6969, socketFactory);
|
||||
voiceChat.start();
|
||||
}
|
||||
|
||||
private final String host;
|
||||
private final int port;
|
||||
private final SSLSocketFactory socketFactory;
|
||||
|
||||
public SVCClient(String host, int port, SSLSocketFactory socketFactory) {
|
||||
this.host = host;
|
||||
this.port = port;
|
||||
this.socketFactory = socketFactory;
|
||||
}
|
||||
|
||||
public void start() {
|
||||
// Connect and auth
|
||||
|
||||
try (Socket socket = this.socketFactory.createSocket()) {
|
||||
socket.connect(new InetSocketAddress(this.host, this.port));
|
||||
Connection conn = new Connection(socket);
|
||||
|
||||
this.handleHandshake(conn);
|
||||
} catch (IOException e) {
|
||||
System.out.printf("Failed to connect.%n");
|
||||
e.printStackTrace(System.out);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleHandshake(Connection conn) throws IOException {
|
||||
ClientHelloPacket clientHello = new ClientHelloPacket();
|
||||
clientHello.version = SimplerVoiceChat.PROTOCOL_VERSION;
|
||||
conn.writePacket(clientHello);
|
||||
|
||||
while (true) {
|
||||
BinaryMessage packet = conn.readPacket();
|
||||
|
||||
switch (packet) {
|
||||
case AuthRequestPacket authRequest -> {
|
||||
System.out.printf("Joining fake server to authenticate.%n");
|
||||
|
||||
AuthResponsePacket authResponse = new AuthResponsePacket();
|
||||
authResponse.username = "Test";
|
||||
conn.writePacket(authResponse);
|
||||
}
|
||||
case AuthSuccessPacket authComplete -> {
|
||||
System.out.printf("Successfully authenticated.%n");
|
||||
return;
|
||||
}
|
||||
default -> {
|
||||
System.out.printf("Got unexpected packet.%n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,19 +1,8 @@
|
|||
package eu.e99.svc;
|
||||
|
||||
import eu.e99.svc.io.BinaryMessage;
|
||||
import eu.e99.svc.io.MessageRegistry;
|
||||
import eu.e99.svc.packet.*;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
|
||||
public class SimplerVoiceChat {
|
||||
|
||||
public static final int PROTOCOL_VERSION = 0;
|
||||
|
@ -30,71 +19,4 @@ public class SimplerVoiceChat {
|
|||
PACKETS.registerMessage(100, MessagePacket::new);
|
||||
PACKETS.registerMessage(255, DisconnectPacket::new);
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) throws NoSuchAlgorithmException, KeyManagementException {
|
||||
TrustManager[] trustManagers = new TrustManager[]{
|
||||
new AllTrustManager(),
|
||||
};
|
||||
|
||||
SSLContext sslContext = SSLContext.getInstance("TLS");
|
||||
sslContext.init(null, trustManagers, new SecureRandom());
|
||||
|
||||
SSLSocketFactory socketFactory = sslContext.getSocketFactory();
|
||||
|
||||
SimplerVoiceChat voiceChat = new SimplerVoiceChat("localhost", 6969, socketFactory);
|
||||
voiceChat.start();
|
||||
}
|
||||
|
||||
private final String host;
|
||||
private final int port;
|
||||
private final SSLSocketFactory socketFactory;
|
||||
|
||||
public SimplerVoiceChat(String host, int port, SSLSocketFactory socketFactory) {
|
||||
this.host = host;
|
||||
this.port = port;
|
||||
this.socketFactory = socketFactory;
|
||||
}
|
||||
|
||||
public void start() {
|
||||
// Connect and auth
|
||||
|
||||
try (Socket socket = this.socketFactory.createSocket()) {
|
||||
socket.connect(new InetSocketAddress(this.host, this.port));
|
||||
Connection conn = new Connection(socket);
|
||||
|
||||
this.handleHandshake(conn);
|
||||
} catch (IOException e) {
|
||||
System.out.printf("Failed to connect.%n");
|
||||
e.printStackTrace(System.out);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleHandshake(Connection conn) throws IOException {
|
||||
ClientHelloPacket clientHello = new ClientHelloPacket();
|
||||
clientHello.version = PROTOCOL_VERSION;
|
||||
conn.writePacket(clientHello);
|
||||
|
||||
while (true) {
|
||||
BinaryMessage packet = conn.readPacket();
|
||||
|
||||
switch (packet) {
|
||||
case AuthRequestPacket authRequest -> {
|
||||
System.out.printf("Joining fake server to authenticate.%n");
|
||||
|
||||
AuthResponsePacket authResponse = new AuthResponsePacket();
|
||||
authResponse.username = "Test";
|
||||
conn.writePacket(authResponse);
|
||||
}
|
||||
case AuthSuccessPacket authComplete -> {
|
||||
System.out.printf("Successfully authenticated.%n");
|
||||
return;
|
||||
}
|
||||
default -> {
|
||||
System.out.printf("Got unexpected packet.%n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue