delphi 中 TServerSocker 使用 stThreadBlocking 模式的例子
以下是在 Delphi 中使用 TServerSocket 和 stThreadBlocking 模式的示例:
1.创建一个新的 VCL 应用程序项目。2.在主窗体上放置一个 TServerSocket 组件并设置属性如下:
a) Port:8080 b) ServerType:stThreadBlocking
3.在主窗体的 OnCreate 事件中添加以下代码:
procedure TForm1.FormCreate(Sender: TObject);begin ServerSocket1.Active := True;end;
4.在主窗体的 OnClose 事件中添加以下代码:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin ServerSocket1.Active := False;end;
5.在 TServerSocket 的 OnClientConnect 事件中添加以下代码:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);begin Memo1.Lines.Add('Client connected: ' + Socket.RemoteAddress);end;
6.在 TServerSocket 的 OnClientRead 事件中添加以下代码:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);var Buffer: array [0 .. 1023] of Char; Data: AnsiString; BytesRead: Integer;begin BytesRead := Socket.ReceiveBuf(Buffer, SizeOf(Buffer)); if BytesRead > 0 then begin SetString(Data, Buffer, BytesRead); Memo1.Lines.Add(Socket.RemoteAddress + ': ' + Data); end;end;
7.在主窗体上放置一个 TMemo 控件并将其 Align 属性设置为 alClient。
现在,当该应用程序运行时,它将启动一个服务器套接字并开始监听端口 8080。当客户端连接到该端口时,OnClientConnect 事件将触发,并在 Memo1 控件中记录连接的客户端地址。当客户端发送数据时,OnClientRead 事件将触发,并在 Memo1 控件中显示接收到的数据。注意,在 stThreadBlocking 模式下,每个已连接的客户端都有一个单独的线程来处理它们的请求和响应。
相关技术视频教程:https://ke.qq.com/course/417774?flowToken=1013300
c/c++后端技术交流群:812855908
评论