0
Java로 작성된 서버가 있습니다. 클라이언트가 연결될 때 "HELLO"를 울리는 단순한 것입니다. 그런 다음 클라이언트가 보내는 모든 답장을 되풀이합니다. PHP 클라이언트를 사용하여 Java 소켓 서버에서 응답을 읽을 수 없습니다.
ServerSocket ss=new ServerSocket(2001);
while(true) {
Socket s=ss.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
out.println("HELLO");
String msg=in.readLine();
out.println(msg);
}
내가 서버에 연결하는 PHP 스크립트가 : 코드는 다음과 같습니다
<?php
$socket=socket_create(AF_INET,SOCK_STREAM,getprotobyname('tcp'));
socket_connect($socket,'127.0.0.1',2001);
$msg=socket_read($socket,10);
echo socket_write($socket,'I am the client.');
$msg=socket_read($socket,20);
echo $msg;
?>
내가 서버에서 "HELLO"메시지가 무엇입니까를, 서버는 또한 "는 점점 나는 클라이언트 "메시지이지만 PHP 클라이언트가 응답을 다시받지 못합니다. 여기서 내가 뭘 잘못하고 있니?
확인. 따라서 회신 후 개행 문자를 추가해야합니다! –
서버가 php에서 메시지를 얻는다는 op 명령문에 유의하십시오 (readline()이 반환되었음을 의미 함). 그래도, 나는 네가 옳다고 생각한다. – goat
@chris : 아, 그리워. 나는 socket_write가 암시 적으로 개행을 추가하지 않으면 OP *가 클라이언트로부터 메시지를 얻는 방법을 보지 못합니다 ... 아니면 PHP 스크립트가 포기하고 소켓을 닫았습니다. –