저는 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);
}
:
안녕하세요,'in.readLine()'대신'in.read()'를 사용해보세요. 'read()'가 char 값을 읽었으므로 반복해야 할 것이다. 따라서 '-1'을 읽고 얻으면 스트림의 끝 부분에 도달했습니다. 숫자가 출력되면 char 값이 가장 높기 때문에 변환해야합니다. 그럴 경우 알려주십시오. –
안녕하세요, 먼저 도움을 주셔서 감사합니다! in.read()로 바꿨고 63, 65533, 104, 76 등의 숫자를 얻기 시작했습니다. 내 labview 프로그램은 1 차원 배열을 double로 변환합니다. – Ryan