From c17ccbfb714c55dc1ac2a9d0fad7c4d24f6d94fb Mon Sep 17 00:00:00 2001 From: Mysaa Date: Wed, 26 May 2021 22:14:56 +0200 Subject: [PATCH] Quelques fix sur le code du serveur --- src/main/java/com/bernard/murder/BytesUtils.java | 16 ++++++++++++++++ .../com/bernard/murder/audio/AudioServer.java | 9 ++++++--- .../java/com/bernard/murder/audio/MicServer.java | 2 +- .../java/com/bernard/murder/audio/Serveur.java | 1 + .../com/bernard/murder/audio/SpeakerServer.java | 5 +++-- .../com/bernard/murder/game/GameManager.java | 2 -- .../murder/view/EnceinteServeurFrame.java | 1 + 7 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/bernard/murder/BytesUtils.java b/src/main/java/com/bernard/murder/BytesUtils.java index 912a002..f8eb436 100755 --- a/src/main/java/com/bernard/murder/BytesUtils.java +++ b/src/main/java/com/bernard/murder/BytesUtils.java @@ -1,6 +1,9 @@ package com.bernard.murder; import java.nio.ByteBuffer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.Stream.Builder; public class BytesUtils { @@ -17,4 +20,17 @@ public class BytesUtils { buffer.put(data); } + public static Stream toStream(ByteBuffer buffer){ + Builder bldr = Stream.builder(); + + for(Byte b: buffer.array()) + bldr.add(b); + + return bldr.build(); + } + + public static void dump(ByteBuffer buffer) { + System.out.println(toStream(buffer).limit(buffer.position()).map(b -> b.toString()).collect(Collectors.joining(","))); + } + } diff --git a/src/main/java/com/bernard/murder/audio/AudioServer.java b/src/main/java/com/bernard/murder/audio/AudioServer.java index 174c7d5..af5c080 100755 --- a/src/main/java/com/bernard/murder/audio/AudioServer.java +++ b/src/main/java/com/bernard/murder/audio/AudioServer.java @@ -112,6 +112,7 @@ public class AudioServer { } catch (IOException e1) { e1.printStackTrace(); } + System.out.println("Accepting request from "+senderAddress); break; case AudioServer.ASK_STREAMING: int listened = data.getInt(); @@ -163,10 +164,12 @@ public class AudioServer { ByteBuffer out2 = ByteBuffer.allocate(AudioServer.packetMaxSize); out2.put(AudioServer.GIVE_AUDIO_LIST); out2.putInt(mics.size()); - for(Entry e : mics.entrySet()) { - out2.putInt(e.getKey()); - BytesUtils.writeString(out2, e.getValue()); + for(Entry mic : mics.entrySet()) { + out2.putInt(mic.getKey()); + BytesUtils.writeString(out2, mic.getValue()); } + System.out.println("Sending audio list to "+senderAddress+" : "); + BytesUtils.dump(out2); try { serveur.sendData(out2, senderAddress); } catch (IOException e1) { diff --git a/src/main/java/com/bernard/murder/audio/MicServer.java b/src/main/java/com/bernard/murder/audio/MicServer.java index e068b96..a22cbc0 100755 --- a/src/main/java/com/bernard/murder/audio/MicServer.java +++ b/src/main/java/com/bernard/murder/audio/MicServer.java @@ -103,7 +103,7 @@ public class MicServer { micId = deviceId; - serverAnswered.run(); + new Thread(serverAnswered).start(); if(micLine==null) try { diff --git a/src/main/java/com/bernard/murder/audio/Serveur.java b/src/main/java/com/bernard/murder/audio/Serveur.java index ceffaec..c88a0a0 100755 --- a/src/main/java/com/bernard/murder/audio/Serveur.java +++ b/src/main/java/com/bernard/murder/audio/Serveur.java @@ -112,6 +112,7 @@ public class Serveur { public void sendData(byte[] data, SocketAddress address) throws IOException { if(data.length < packetMaxLength) { DatagramPacket packet = new DatagramPacket(data, data.length,address); + System.out.println("Sent "+packet.getLength()+" bytes to "+packet.getAddress()); socket.send(packet); }else { short packetCount = (short) (data.length / (packetMaxLength-42)); diff --git a/src/main/java/com/bernard/murder/audio/SpeakerServer.java b/src/main/java/com/bernard/murder/audio/SpeakerServer.java index 2d03963..1883b62 100755 --- a/src/main/java/com/bernard/murder/audio/SpeakerServer.java +++ b/src/main/java/com/bernard/murder/audio/SpeakerServer.java @@ -130,7 +130,7 @@ public class SpeakerServer { if(!isMicListUpToDate)askAudioList(); while(!isMicListUpToDate) { try { - Thread.sleep(1); + Thread.sleep(1);//XXX Can be interrupted here avec le bouton «Arreter» } catch (InterruptedException e) { e.printStackTrace(); } @@ -162,7 +162,7 @@ public class SpeakerServer { return; speakerId = deviceId; - serverAnswered.run(); + new Thread(serverAnswered).start(); if(speakerLine==null) try { initializeSpeakerDevice(); @@ -177,6 +177,7 @@ public class SpeakerServer { int thisMicId = data.getInt(); mics.put(thisMicId,BytesUtils.readString(data)); } + System.out.println("Audio list given: "+mics); isMicListUpToDate=true; break; diff --git a/src/main/java/com/bernard/murder/game/GameManager.java b/src/main/java/com/bernard/murder/game/GameManager.java index 7a87ff4..7aaad14 100644 --- a/src/main/java/com/bernard/murder/game/GameManager.java +++ b/src/main/java/com/bernard/murder/game/GameManager.java @@ -69,14 +69,12 @@ public class GameManager { } public void quickSave() { - System.out.println("Quicksaving"); File toSave = new File(quickSaveFilename()); File tempOldSave = new File(quickSaveFilename()+".tmp"); if(toSave.exists())toSave.renameTo(tempOldSave); try { GameCreator.quickSave(toSave, partie,minelsQuicksaver.get()); - System.out.println("Quicksaved"); if(tempOldSave.exists())tempOldSave.delete(); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/com/bernard/murder/view/EnceinteServeurFrame.java b/src/main/java/com/bernard/murder/view/EnceinteServeurFrame.java index b5eac62..56674a4 100755 --- a/src/main/java/com/bernard/murder/view/EnceinteServeurFrame.java +++ b/src/main/java/com/bernard/murder/view/EnceinteServeurFrame.java @@ -73,6 +73,7 @@ public class EnceinteServeurFrame extends JFrame{ NamedMicrophone[] micarray = new NamedMicrophone[list.size()]; list.toArray(micarray); mics.setListData(micarray); + System.out.println("Micros chargés: "+list); }); serverControl.setText("Lancement"); }