我正在尝试在单个端口上建立简单的TCP连接,使用Java应用程序作为TCP服务器和PHP脚本作为客户端。以下是每个代码,但问题是:我可以成功连接并发送数据到Java服务器,可以接收并打印出该数据。我的问题在于尝试向php服务器发送响应时出现了问题。当我注释掉PHP的最后一行“echo socket_read($socket, 14, PHP_NORMAL_READ);”时,数据能够成功传送到Java服务器。但当我重新添加该行时,数据甚至无法传送到Java服务器。因此,我认为我的问题可能与我如何从Java发送数据或尝试从服务器中获取数据相关。这让我感到困惑,请给予帮助!Java服务器:
protected ServerSocket socket;
protected final int port = 9005;
protected Socket connection;
protected String command = new String();
protected String responseString = new String();
socket = new ServerSocket(port);
while(true)
{
// open socket
connection = socket.accept();
// get input reader
InputStreamReader inputStream = new InputStreamReader(connection.getInputStream());
BufferedReader input = new BufferedReader(inputStream);
// get output handler
DataOutputStream response = new DataOutputStream(connection.getOutputStream());
// get input
command = input.readLine();
// process input
Logger.log("Command: " + command);
responseString = command + " MC2 It Works!";
// send response
response.writeBytes(responseString);
response.flush();
response.close();
}
PHP客户端:
$address = 'example.com'; // obviously not the address I am using
$port = 9005;
$message = "Test";
$socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
socket_connect($socket, $address, $port)
if(socket_send($socket, $message, strlen($message), MSG_EOF) != FALSE)
{
echo socket_read($socket, 14, PHP_NORMAL_READ);
}