1
私は依頼書Push 567
を送っているクライアントコードを持っていて、私はサーバの番号を操作してクライアントに送り返しています。私のコードは、整数のサンプル数のために働いていますが、数字の文字列を含めるときに問題があります。プッシュ567.私はちょうど567を入れて、サーバプログラムの整数値を取り除くとうまくいきます。Javaの解析の問題 - サーバーからデータを受信する方法
編集:それはちょうど文字列または整数のために働いていますが、私はそれを解析しません。
クライアントコード
public class Client
{
public static void main(String[] args) throws IOException
{
Socket s=new Socket("127.0.0.1",1342);
Scanner sc1=new Scanner(s.getInputStream());
String req = "PUSH 567";
PrintStream p = new PrintStream(s.getOutputStream());
p.println(req);
int temp=sc1.nextInt();
System.out.println(temp);
}
}
Serverコード
public class NewServer
{
public static void main(String[] args) throws IOException
{
ServerSocket k=new ServerSocket(1342);
Socket ss=k.accept();
Scanner sc=new Scanner(ss.getInputStream());
String s = sc.next();
int i = Integer.valueOf(s);
int temp=i+2;
PrintStream p=new PrintStream(ss.getOutputStream());
p.println(temp);
}
}
私はあなたが 'PUSH 567' を送っているが、あなたのサーバがあるかのようにコーディングされている
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Tester.Client.main(Client.java:24)
を取得していますエラー入力に数字だけがありました。したがって、サーバーは 'NumberFormatException'で失敗している必要があります。これにより、何も送り返さずに終了し、クライアントの失敗を引き起こします。 – EJP
文字列自体を印刷して何を得るかを調べてみてください – JavaHopper
@ EJP私は解析が十分だと思いました。どのような変更が必要ですか? – Box