2017-10-18 18 views
-2

私のパートナーシステムサービスソケットサーバー。クライアントモジュールを共有せず、サンプルデータのみをテストします。
まず、私はtelnetプログラムを使ってテストしました。 this image link is the test using telnet program
しかし、私のJavaソケットクライアントはソケットサーバーからメッセージを受け取ることができません。
this image link is result of my socket program.
お手伝いしますか?おかげさまで TelnetテストはOKですが、Javaソケットクライアントが動作していません

public static void main(String[] args) { 
    System.out.println("file.encoding: " + System.getProperty("file.encoding")); 
    try { 
     Socket socket; 

     final String HOST = "xx.xx.xx.xxx"; // partner test server 
     final int PORT = 8994; 

     try { 
      socket = new Socket(HOST, PORT); 
     } catch (IOException ioe) { 
      System.out.println(">>>"); 
      System.out.println(ioe.getMessage()); 
      System.out.println(">>>"); 
      throw ioe; 
     } 
     System.out.println("sending data:"); 
     OutputStream os = socket.getOutputStream(); 
     byte[] b = "xxxx52017082410332310000000020321         ONL00000                            080081COP0045    3xxxxxxxxxxxxxxx/jOsBUe5I11C2mtP0j5tPSww==20170824103323                                                                                                                                                                                                 ".getBytes(); 
     for (int i = 0; i < b.length; i++) { 
      os.write(b[i]); 
     } 
     os.flush(); 
     socket.shutdownOutput(); 
     System.out.println(new String(b) + "[END]"); 
     System.out.println("receiving data"); 
     BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
     String inputLine; 

     while ((inputLine = in.readLine()) != null) { 
      System.out.println(inputLine); 

     } 
     socket.close(); 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } 
} 
+1

質問、特定の問題やエラーや問題自体でそれを再現するために必要な最短のコードを希望の動作を含める必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[mcve]を作成する方法。あなたの*質問を改善するために "編集"リンクを使用してください - コメントでより多くの情報を追加しないでください。ありがとう! – GhostCat

+1

"動作していません"とは動作していません。あなたは自分のガレージに電話をしている男のようなものです。私の車は奇妙な音を出しています。ありえない。 – GhostCat

+0

"しかし、私のJavaソケットクライアントは動作していません。"私たちはもっと詳細を必要とします。 **正確に**動作していないのは何ですか?どのようにそれを解決しようとしましたか?コードはどこにありますか? –

答えて

0

解決策が見つかりました。

severソケットプログラムは、文字列ではなくバイトデータを送信しました。 私のソースコードを以下に見つけてください。

ありがとうございました。デバッグの助け求めて(「なぜこのコードは動作しないの?」)

 socket = new Socket(ip, port); 
     System.out.println("SEND DATA[" +msg.length() + "] [" + msg + "]"); 
     oout = new BufferedOutputStream(socket.getOutputStream()); 
     iin = new BufferedInputStream(socket.getInputStream()); 
     oout.write(msg.getBytes()); 
     oout.flush(); 

     byte[] buffer = new byte[1156]; 
     System.out.println("RECV DATA"); 
     iin.read(buffer); 

     System.out.println("RECV DATA [" + new String(buffer) +"]"); 
関連する問題