Hej. Jag har problem med en ganska enkel sak. Att skicka en PublikKey över en socket. Av någon anledning funkar det inte.
Socket clientSocket = new Socket("127.0.0.1", 8000);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
Jag försöker därefter skicka en Byte[] array som en string mha:
outToServer.writeBytes(clientPubKeyEnc.toString());
På andra sidan socketen öppnar jag socketen:
Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
Jag försöker sedan läsa in det som ska vara skickat med:
String clientPubKeyString = inFromClient.readLine();
Men det är här något går snett: Prövar jag att println(clientPubKeyString) så får jag inget resultat.
Om jag försöker println("jag nådde hit") ger heller ingen output.
Helt enkelt så exekveras inte
String clientPubKeyString = inFromClient.readLine(); .
Någon som ser vad jag gjort för fel?
tack!
Jag är trött och kan ha fel, men det kan vara att du inte spolar utdatan från avsändaren. Lägg till ett anrop till outToServer.flush() efter att du anropat writeBytes.
Jag skulle iofs använda en BufferedWriter i sändarändan också och inte bara en DOS om nödvändigt vill skicka en sträng.
Sedan misstänker jag att när du gör toString() så lägger den inte till någon newline i slutet för \n finns inte i clientPubKeyEnc (eller) och BufferedReader.readLine() läser tills den hittar \n eller \0.
Fast... strängar i java ska ju vara null-terminerade.
Av någon underlig anledning har det betydelse om man först gör getOutputStream eller getInputStream, kommer tyvärr inte ihåg i vilken ordning man ska göra det. gör man det i fel ordning hänger programmet sig det första stället av get....Stream
Hade själv problem med det, satt några timmar utan att hitta felet sen var det någon som frågade om jag testat ett byta på de två raderna och så fugnerade det.
hoppas du förstår vad jag menar. säg gärna till om det hjälper.
278 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a