【问题标题】:Client socket hangs on response客户端套接字在响应时挂起
【发布时间】:2015-03-23 17:36:47
【问题描述】:

我在 java 中有一个简单的 TCP 服务器。

// 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);

【问题讨论】:

    标签: java php android sockets tcp


    【解决方案1】:

    我找到了解决这个问题的方法。

    当我发送消息时,我必须在字符串末尾添加“\n”。我不知道为什么。也许有人知道为什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 2015-06-21
      • 1970-01-01
      • 2013-10-23
      • 2022-01-17
      • 1970-01-01
      • 2018-05-23
      相关资源
      最近更新 更多