hey so I've been looking around a lot but i couldn't get a accurate answer and I want to communicate php and c++ with sockets and i have spend hours trying to find any example but I cannot find.
server:
WSADATA wsa_data;
SOCKADDR_IN server_addr, client_addr;
int wsa = WSAStartup(MAKEWORD(2, 2), &wsa_data);
if (wsa != 0)
return;
const auto server = socket(AF_INET, SOCK_STREAM, 0);
server_addr.sin_addr.s_addr = INADDR_ANY;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(1111);
::bind(server, reinterpret_cast<SOCKADDR*>(&server_addr), sizeof(server_addr));
listen(server, 0);
printf("listening for connections\n");
int client_addr_size = sizeof(client_addr);
for (;;)
{
SOCKET client;
if ((client = accept(server, reinterpret_cast<SOCKADDR*>(&client_addr), &client_addr_size)) != INVALID_SOCKET)
{
SOCKET soc = client;
string str = inet_ntoa(client_addr.sin_addr);
std::cout << "connec" << std::endl;
char dobj[1024];
auto n = recv(soc, dobj, 1024, 0);
std::cout << n << std::endl;
std::cout << dobj << std::endl;
}
const auto last_error = WSAGetLastError();
if (last_error > 0)
{
printf("error: %i\n", last_error);
}
}
closesocket(server);
WSACleanup();
client:
<?php
if (isset($_GET['submit'])){
$query = $_GET['query'];
echo $query;
error_reporting(E_ALL);
$service_port = 1111;
$address = "localhost";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false){
echo "Failed: ". socket_strerror(socket_last_error($socket))."\n";
}
echo "Attempting to connect to '$address' on port '$service_port'...'\n";
$result = socket_connect($socket, $address, $service_port);
if ($result === false){
echo "Failed: ". socket_strerror(socket_last_error($socket))."\n";
}
$in = $query;
$out = '';
echo "Sending...\n";
socket_send($socket, $in, strlen($in), MSG_WAITALL);
echo "OK.\n";
echo "Reading response:\n\n";
while ($out = socket_read($socket, 10)) {
echo $out;
}
socket_close($socket);
}
?>
here are my few attemts my code says success for connect and the php side is just stuck on sending and i cant figure it out