写点什么

delphi 中 TServerSocker 使用 stThreadBlocking 模式的例子

作者:linux大本营
  • 2023-04-22
    湖南
  • 本文字数:780 字

    阅读完需:约 3 分钟

以下是在 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

用户头像

还未添加个人签名 2020-11-26 加入

C/C++linux服务器开发群 812855908

评论

发布
暂无评论
delphi中TServerSocker使用stThreadBlocking模式的例子_linux大本营_InfoQ写作社区