2017-10-18 2 views
-2

내 파트너 시스템 서비스 소켓 서버. 그들은 클라이언트 모듈을 공유하지 않고 샘플 데이터 만 테스트합니다.
먼저 텔넷 프로그램을 사용하여 테스트를 마쳤습니다. this image link is the test using telnet program.
그러나 Java 소켓 클라이언트는 소켓 서버에서 메시지를받을 수 없습니다.
this image link is result of my socket program.
도와 주시겠습니까? 감사합니다. .텔넷 테스트는 정상이지만 내 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

"is not working"은 작동하는 문제 설명이 아닙니다. 당신은 차고를 "내 차가 이상한 소리를 내고있는 남자 같아. 이제 어떻게 해결해야하는지 말해." 불가능합니다. – GhostCat

+0

"하지만 Java 소켓 클라이언트가 작동하지 않습니다." 우리는 더 자세한 정보가 필요합니다. ** 정확하게 ** 작동하지 않는 것은 무엇입니까? 어떻게 그것을 해결하려고 했습니까? 코드가 어디에 있습니까? –

답변

0

해결책을 찾았습니다.

끊김없는 소켓 프로그램이 문자열 데이터가 아닌 바이트 데이터를 보냈습니다. 내 소스 코드를 아래에서 찾으십시오.

모두에게 감사드립니다.

 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) +"]"); 
관련 문제