2015-01-24 2 views
0

У меня есть простой TCP-сервер в java.Клиентский винт зависает при ответе

// while(true), try catch etc. 
serverSocket = new ServerSocket(4444); // Server socket 

clientSocket = serverSocket.accept(); 
inputStreamReader = new InputStreamReader(clientSocket.getInputStream()); 
bufferedReader = new BufferedReader(inputStreamReader); 
message = bufferedReader.readLine(); 

OutputStream os = clientSocket.getOutputStream(); 
OutputStreamWriter osw = new OutputStreamWriter(os); 
BufferedWriter bw = new BufferedWriter(osw); 
bw.write("test"); 
bw.flush(); 


inputStreamReader.close(); 
clientSocket.close(); 
bufferedReader.close(); 
os.close(); 
osw.close(); 

и я построю клиента в PHP, но он висит на получение ответа, когда я строю тот же простой клиент в Java это хорошо работает. Как решить эту проблему?

PHP Клиент:

$socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp')); 
socket_connect($socket, $address, $port); 

$message = 'test'; 


$status = socket_sendto($socket, $message, strlen($message), MSG_EOF, $address, $port); 
if($status !== FALSE) { 
    $message = ''; 
    $next = ''; 

    while ($next = socket_read($socket, 1)) { 
     $message .= $next; 
    } 

    var_dump($message); 
} else { 
    echo "Failed"; 
} 

socket_close($socket); 

ответ

0

Я нашел решение этой проблемы.

Когда я отправляю сообщение, я должен сделать «\ n» в конце строки. Я не знаю почему. Может быть, кто-нибудь знает почему?

Смежные вопросы