前提・実現したいこと
JavaでサーバーとクライアントでMath.random()を使った際、戻り値の値が変わってしまいます。
C:\Users\ruuna\cp4\Kadai1220-1>java LotServer
クライアントへの送信データ:7128
C:\Users\ruuna\cp4\Kadai1220-1>java SimpleLotClient
5453
と値が変わってしまいます。
発生している問題・エラーメッセージ
該当のソースコード
java
1import java.io.*; 2import java.net.*; 3 4public class LotServer{ 5 6 public static void main(String[] args){ 7 try{ 8 ServerSocket serverSocket = new ServerSocket(5000); 9 while(true){ 10 Socket socket = serverSocket.accept(); 11 PrintWriter writer = new PrintWriter(socket.getOutputStream()); 12 13 writer.println(getLotNumber()); 14 writer.close(); 15 System.out.println("クライアントへの送信データ:"+getLotNumber()); 16 } 17 }catch(IOException e){ 18 System.out.println(e); 19 } 20} 21 static int getLotNumber(){ 22 return (int)(Math.random()*9000); 23 } 24} 25 26import java.io.*; 27import java.net.*; 28 29 30public class SimpleLotClient{ 31 public static void main(String[] args){ 32 new SimpleLotClient(); 33 } 34 35 SimpleLotClient(){ 36 try{ 37 Socket socket = new Socket("127.0.0.1", 5000); 38 BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); 39 String number = reader.readLine(); 40 reader.close(); 41 System.out.println(number); 42 }catch(IOException e){ 43 System.out.println(e); 44 } 45 } 46}
試したこと
ネット等で調べましたが解決方法や原因がわからず...
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/15 18:31