我一直在使用它象下面這樣很基本的OnAccept事件過程TTCPServer組件在Delphi編寫一個簡單的服務器應用程序...使用php和delphi的簡單套接字?
「監聽127.0.0.1上通過端口: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;
而且一個簡單的PHP頁面是這樣的...
<?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);
?>
現在的問題是,當我試着寫與PHP的頁面連接的插座沒有發生錯誤,但在Delphi應用程序接收到的文本(聽衆)告訴我錯誤的結果有些事情是這樣的「效汬⸮!」
我該怎麼辦?
您使用的是什麼版本的Delphi? 'Receiveln()'返回'String',它是D2009 +中的'UnicodeString',但'TTCPServer'不支持Unicode!無論如何,你真的不應該使用'TTCPServer',它是一個過時的和不推薦使用的CLX組件。使用更現代的東西,如Indy,ICS或Synapse。 –