2014-10-22 6 views
0

저는 TCP 소켓을 통해 Labview에서 데이터를 보내고 Java로 데이터를 수신하려고합니다.Labview TCP와 Java 연결

저는 Labview의 TCP VI 예제를 사용하고 있습니다.

TCP 읽기가 있다는 것을 알고 있습니다. 아직 그 점을 알지 못했습니다. 내 문제는 형식을 다루는 것입니다. 나는 내 문제를 있으리라 믿고있어

input: d 
echo: ?��/�?�~gʕ ?�$���;P?��G��j�?��"�?�?��;���h?� 
input: input: d 
echo: ?��/�?�~gʕ ?�$���;P?��G��j�?��"�?�?��;���h?� 
input: 

이 유형입니다 : 내가 얻을 자바 프로그램에서 LabVIEW VI에서 입력을받을 때마다 내가 처리 할

import java.io.*; 
import java.net.*; 

public class JavaApplication3 { 
    public static void main(String[] args) throws IOException { 

     String serverHostname = new String ("97.77.53.127"); 

     Socket echoSocket = null; 
     PrintWriter out = null; 
     BufferedReader in = null; 

     try { 
      echoSocket = new Socket(serverHostname, 6340); 
      out = new PrintWriter(echoSocket.getOutputStream(), true); 
      in = new BufferedReader(new InputStreamReader(
             echoSocket.getInputStream())); 
     } catch (UnknownHostException e) { 

      System.exit(1); 
     } catch (IOException e) { 
      System.exit(1); 
     } 

     BufferedReader stdIn = new BufferedReader(
             new InputStreamReader(System.in)); 
     String userInput; 

     System.out.print ("input: "); 
     while ((userInput = stdIn.readLine()) != null) { 
      out.println(userInput); 
      System.out.println("echo: " + in.readLine()); 
      System.out.print ("input: "); 
     } 

     out.close(); 
     in.close(); 
     stdIn.close(); 
     echoSocket.close(); 
    } 
} 

나의 첫 번째 문제는, 캐스팅,하지만 난 정말 그것을 고칠 정도로 모르겠다. 도움이 될 것입니다. 그냥 코드에서이 곳을 넣어

int temp = 0; 
while((temp = in.read()) != -1){ 
    System.out.print((char)temp); 
} 

:

+0

안녕하세요,'in.readLine()'대신'in.read()'를 사용해보세요. 'read()'가 char 값을 읽었으므로 반복해야 할 것이다. 따라서 '-1'을 읽고 얻으면 스트림의 끝 부분에 도달했습니다. 숫자가 출력되면 char 값이 가장 높기 때문에 변환해야합니다. 그럴 경우 알려주십시오. –

+0

안녕하세요, 먼저 도움을 주셔서 감사합니다! in.read()로 바꿨고 63, 65533, 104, 76 등의 숫자를 얻기 시작했습니다. 내 labview 프로그램은 1 차원 배열을 double로 변환합니다. – Ryan

답변

1

좋아, 다음과 같은 것을 시도. 이것은 리턴 된 int를 char 값으로 단순히 캐스팅하여 문자를 출력합니다.

어떻게 진행되는지 알려주세요.

+0

입력을 char로 캐스팅 해 보았습니다. 모든 도움에 감사드립니다. – Ryan

+0

안녕하세요. 그런 다음 내 대답에서 위로 화살표를 클릭하여 답변으로 표시해야합니다. 감사! –

+1

하지만, 위쪽 화살표에는 15 개의 평판이 필요합니다. 나는 그렇게하기 위해 최선을 다하고있다. – Ryan