Ho una semplice applicazione di server scritto in Delphi usando componente TTCPServer ha una routine evento OnAccept veramente di base come qui di seguito ...socket semplice con php e delphi?
"Listener su 127.0.0.1 sulla porta: 10000"
procedure TMainWindow.TcpServerAccept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
S: String;
begin
S := ClientSocket.Receiveln();
ShowMessage(S);
ShowMessage(IntToStr(Length(S)));
Memo1.Lines.Add(S);
end;
E una semplice pagina PHP come questo ...
<?php
$address = '127.0.0.1';
$port = 10000;
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock, $address, $port);
socket_set_option($sock, SOL_SOCKET, SO_KEEPALIVE, 1);
$msg = 'Hello...!';
echo socket_write($sock, $msg, strlen($msg));
socket_close($sock);
?>
Ora il problema è quando sto cercando di scrivere nella presa collegata con la pagina php si è verificato alcun errore, ma il testo ricevuto nell'applicazione Delphi (ascoltatore) mi mostra il risultato sbagliato qualche cosa come questa "效 汬 ⸮!"
cosa devo fare ???
Quale versione di Delphi stai usando? 'Receiveln()' restituisce un 'String', che è un' UnicodeString' in D2009 +, ma 'TTCPServer' non supporta Unicode! In realtà non dovresti usare 'TTCPServer', è un componente CLX obsoleto e obsoleto. Usa qualcosa di più moderno, ad esempio da Indy, ICS o Synapse. –