php delphi xe tcpip server
时间: 2023-08-17 18:05:05 浏览: 44
可以使用 Indy 组件来开发 TCP/IP 服务器,Indy 是 Delphi 的一个开源组件库,也支持 PHP。以下是一个简单的示例:
Delphi XE:
```Delphi
unit ServerForm;
interface
uses
System.SysUtils, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.StdCtrls,
IdContext, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer;
type
TForm1 = class(TForm)
Memo1: TMemo;
TCPServer1: TIdTCPServer;
procedure TCPServer1Execute(AContext: TIdContext);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
TCPServer1.DefaultPort := 8080;
TCPServer1.Active := True;
end;
procedure TForm1.TCPServer1Execute(AContext: TIdContext);
var
Request: string;
begin
Request := AContext.Connection.IOHandler.ReadLn;
Memo1.Lines.Add('Received: ' + Request);
AContext.Connection.IOHandler.WriteLn('Hello, ' + Request);
end;
end.
```
PHP:
```php
<?php
$host = "localhost";
$port = 8080;
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
$result = socket_connect($socket, $host, $port) or die("Could not connect to server\n");
$request = "World";
socket_write($socket, $request, strlen($request)) or die("Could not send data to server\n");
$response = socket_read($socket, 1024) or die("Could not read data from server\n");
echo "Response: " . $response . "\n";
socket_close($socket);
?>
```
以上代码演示了一个简单的 TCP/IP 服务器和客户端的交互过程。当 PHP 客户端连接到 Delphi 服务器时,它会向服务器发送一个字符串 "World",服务器会收到这个字符串并在服务端的 Memo1 组件上显示出来,并将 "Hello, World" 发送回 PHP 客户端,最后 PHP 客户端将这个字符串打印出来。