0
소켓에서 수신 대기중인 자바 서버가 있습니다. 이 java 서버 소켓과 연결된 java 클라이언트 소켓간에 데이터를 보내고받을 수 있습니다.PHP에서 Java 소켓으로 바이트 배열 보내기
지금 자바 소켓을 통해 PHP를 자바 서버에 연결하고 싶지만 자바에 바이트 배열 (pack() 사용)을 보낼 수 없습니다. 내가 in.readInt()
를 호출 할 때 자바 말에
$socket = fsockopen("127.0.0.1", 5477) or die("Error creating socket");
$output = pack("i3", 2, 1, 1);
fwrite($socket, $output, 3);
가 나는 java.io.EOFException을 얻을 그래서 문제가 무엇
if (in.available() != 0)
{
//read the data
int len = in.readInt(); //length of the buffer
}
(in
는 DataInputStream
어디입니까)?/올바른 방법으로이 작업을 수행하고 있습니까? 아니면이 작업을 수행하는 더 좋은 방법이 있습니까?
오 예. 그래서 나는 그것을 다음과 같이 변경해야한다 :'fwrite ($ socket, $ output, 12)'? 그리고 자바에서 비트 순서를 뒤집을 필요가 있습니까? (내가 지금 길이를 읽을 때 나는 33554432를 얻는다.) – Andrew
@Andrew. Java DataInputStream은 빅 엔디안 바이트 순서를 사용하므로이를 사용하려면 PHP 측에서 적절하게 데이터를 패키지화해야합니다. –