delphi7服务器端与delphi10.4.2安卓端TSocket通信的实例代码

时间: 2024-03-10 12:51:17 浏览: 20
以下是一个简单的 Delphi7 服务器端和 Delphi10.4.2 安卓端 TSocket 通信的实例代码: Delphi7 服务器端: ```delphi unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls; type TForm1 = class(TForm) btnStart: TButton; Memo1: TMemo; procedure btnStartClick(Sender: TObject); private { Private declarations } FServerSocket: TServerSocket; procedure OnClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure OnClientRead(Sender: TObject; Socket: TCustomWinSocket); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btnStartClick(Sender: TObject); begin Memo1.Lines.Add('Starting server...'); FServerSocket := TServerSocket.Create(nil); FServerSocket.OnClientConnect := OnClientConnect; FServerSocket.Port := 1234; FServerSocket.Active := True; Memo1.Lines.Add('Server started.'); end; procedure TForm1.OnClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('Client connected.'); Socket.OnRead := OnClientRead; end; procedure TForm1.OnClientRead(Sender: TObject; Socket: TCustomWinSocket); var Str: string; begin Str := Socket.ReceiveText; Memo1.Lines.Add('Received: ' + Str); Socket.SendText('Hello from server'); end; end. ``` Delphi10.4.2 客户端: ```delphi unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, System.Win.ScktComp, FMX.Layouts, FMX.Memo, FMX.StdCtrls; type TForm1 = class(TForm) btnConnect: TButton; btnSend: TButton; edtIP: TEdit; edtPort: TEdit; edtMessage: TEdit; Memo1: TMemo; Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure btnConnectClick(Sender: TObject); procedure btnSendClick(Sender: TObject); private { Private declarations } FSocket: TClientSocket; procedure OnSocketRead(Sender: TObject; Socket: TCustomWinSocket); public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.btnConnectClick(Sender: TObject); begin Memo1.Lines.Add('Connecting...'); FSocket := TClientSocket.Create(nil); FSocket.OnRead := OnSocketRead; FSocket.Host := edtIP.Text; FSocket.Port := StrToInt(edtPort.Text); FSocket.Open; end; procedure TForm1.btnSendClick(Sender: TObject); begin if Assigned(FSocket) then begin FSocket.Socket.SendText(edtMessage.Text); Memo1.Lines.Add('Sending: ' + edtMessage.Text); end; end; procedure TForm1.OnSocketRead(Sender: TObject; Socket: TCustomWinSocket); var Str: string; begin Str := Socket.ReceiveText; Memo1.Lines.Add('Received: ' + Str); end; end. ``` 该代码实现了一个简单的服务器-客户端通信,当客户端连接到服务器时,服务器会触发 OnClientConnect 事件,当客户端向服务器发送数据时,服务器会触发 OnClientRead 事件并将收到的数据发送回客户端。客户端通过编辑 IP 地址、端口和消息文本框来连接到服务器,发送数据并接收响应。当客户端收到数据时,OnSocketRead 事件将被触发,并将收到的数据添加到 Memo1 控件中。

相关推荐

最新推荐

recommend-type

如何改变delphi 中按钮的样式

它遵循了Delphi的组件定义规则,完成后该按钮与普通按钮(Button)相比,多了一个Color属性,你可以永远地使用它,在设计阶段随意地改变颜色,就象是Delphi本身提供的组件一样(本文代码在Delphi 4.0下完成)。
recommend-type

《Google Android开发入门与实战》.pdf

从技术实现上,讲解了5个android平台下的完整综合实例及源代码分析,分别是rss阅读器、基于google map的个人gps、豆瓣网(web 2.0)客户端、在线音乐播放器、手机信息查看助手。本书注重对实际动手能力的指导,在遵循...
recommend-type

简单实例助你快速掌握PROTEUS的用法

子情境1:简单实例助你快速掌握PROTEUS的用法 12 ...10.4.2 步骤二:源程序设计与目标代码文件生成 84 (1)程序流程图 84 (2)源程序设计 85 10.4.3 步骤三:PROTEUS仿真 87 10.5 扩展练习 88
recommend-type

用Javascript设计通用日历控件及其与ASP的结合应用

摘要 I Abstract II 第一章 概述 1 1.1 背景分析 1 1.1.1 制作通用日历控件的意义 1 1.1.2 使用JavaScript的必要性 ...10.4.2 连接数据库 45 10.4.3 向数据库添加新记录 45 10.4.4 显示数据 46 参考文献 48 结束语 49
recommend-type

GP卡片规范_v2[1].2(CN).doc

1 介绍 7 1.1 受众 7 1.2 标准参考规范 7 1.3 术语及定义 9 1.4 缩写和符号 12 2 系统架构 15 3 卡片架构 16 3.1 安全域 16 3.2 全局服务应用 17 3.3 运行时环境 17 3.4 可信任框架 17 3.5 GlobalPlatform环境(OPEN)...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。