Hallo,
ich bin dabei einen Chat in Java zu bauen (p2p, bei dem das Programm gleichzeitig als Server zum Empfangen und Client zum Senden von Nachrichten agiert), bei dem die Daten über UDP übertragen werden. Eigentlich funktioniert der Chat (auf String-Ebene), ein Problem tritt nur beim Verschlüsseln auf, da er nicht das gleiche empfängt, was gesendet wird (auf byte-Ebene). Im Nachfolgenden kommt der wichtige Teils (Kommunikation funktioniert) meines Code bei dem ich das gesendete byte-Array bwz. empfangene byte-Array mittels toString() "ausgebe". Da der hash-Wert auf beiden Seiten unterschiedlich ist, gehe ich davon aus, das irgendetwas verändert wird. Ist das so, und wenn ja, wie kann ich das Problem lösen?
Client:
Server:
ich bin dabei einen Chat in Java zu bauen (p2p, bei dem das Programm gleichzeitig als Server zum Empfangen und Client zum Senden von Nachrichten agiert), bei dem die Daten über UDP übertragen werden. Eigentlich funktioniert der Chat (auf String-Ebene), ein Problem tritt nur beim Verschlüsseln auf, da er nicht das gleiche empfängt, was gesendet wird (auf byte-Ebene). Im Nachfolgenden kommt der wichtige Teils (Kommunikation funktioniert) meines Code bei dem ich das gesendete byte-Array bwz. empfangene byte-Array mittels toString() "ausgebe". Da der hash-Wert auf beiden Seiten unterschiedlich ist, gehe ich davon aus, das irgendetwas verändert wird. Ist das so, und wenn ja, wie kann ich das Problem lösen?
Client:
Java:
String message = "hierIstDieNachricht";
System.out.println("gesendet: "+message.toString());
//create package
byte[] raw = message.getBytes();
DatagramPacket packet = new DatagramPacket(raw, raw.length, inetAddress, port);
//create socket and send package
DatagramSocket dSocket;
dSocket = new DatagramSocket();
dSocket.send(packet);]
Server:
Java:
while(true)
{
//wait for query
DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);
socket.receive(packet);
// read and output data
InetAddress address = packet.getAddress();
int port = packet.getPort();
int len = packet.getLength();
byte[] data = packet.getData();
Key key1 = new SecretKeySpec( "qwertzuiopasdfgh".getBytes(), "Blowfish" );
System.out.println("erhalten: "+data.toString());
}