ip = $ip; $this->port = $port; $this->timeout = $timeout; } public function send(string $data): string { $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { throw new \Exception("Socket create failed: " . socket_strerror(socket_last_error())); } $result = socket_connect($socket, $this->ip, $this->port); if ($result === false) { throw new \Exception("Socket connect failed: " . socket_strerror(socket_last_error($socket))); } socket_write($socket, $data, strlen($data)); $response = ''; while ($out = socket_read($socket, 2048)) { $response .= $out; // 根據協議判斷是否結束接收,可以自行調整 if (strpos($response, "\n") !== false) { break; } } socket_close($socket); return $response; } }