Hola,
Posiblemente,
Cita:
Iniciado por dpinos ...
socket_recv($socket, $response, 1028, MSG_WAITALL);
...
Con esa línea estás diciendo que
espere hasta recibir 1028 bytes, hasta que ocurra un timeout o hasta que se desconecte el peer. Seguramente no recibe 1028 bytes, ni detectó que se desconectó el peer, así que espera hasta el timeout.
Cita:
Iniciado por dpinos ... Cuando ejecuto ese codigo en un windows el programa recibe la respuesta en aproximademente 1 o 2 segundos.
Cuando ejecuto ese mismo codigo en un linux el programa a pesar de haber recibido la respuesta en el mismo tiempo (lo se porque el server socket ya envio la respuesta) este espera los 20 segundos del timeout para hacer el echo; ...
Posiblemente, el servidor no cerró la conexión correctamente.
Saludos,
ps: 1024 Bytes es igual a 1 Kilobyte.