前几天,Delphi 10.3.2 正式发布,这个小版本升级却增加了一个非常大的平台支持,增加了

macos 64位的支持,今天做一个macOS 64位的kbmmw应用,让kbmmw 服务器的应用更广泛。

当然了,你需要先根据要求,设置好相关的·macos64 的开发环境。

首先我们新建一个FMX 应用。

设置对应的参数

  1. procedure TForm2.Button1Click(Sender: TObject);
  2. begin
  3. kbmmwserver1.AutoRegisterServices;
  4. kbmmwserver1.Active:=true;
  5. end;

平台上添加mac os64

新建一个kbmmw 服务。

服务名设为mactest,生成一个服务,并修改代码如下:

  1. type
  2.  
  3. [kbmMW_Service('name:mactest, flags:[listed]')]
  4. [kbmMW_Rest('path:/mactest')]
  5. // Access to the service can be limited using the [kbmMW_Auth..] attribute.
  6. // [kbmMW_Auth('role:[SomeRole,SomeOtherRole], grant:true')]
  7.  
  8. TkbmMWCustomHTTPSmartService1 = class(TkbmMWCustomHTTPSmartService)
  9. private
  10. { Private declarations }
  11. protected
  12. { Protected declarations }
  13. public
  14. { Public declarations }
  15. // HelloWorld function callable from both a regular client,
  16. // due to the optional [kbmMW_Method] attribute,
  17. // and from a REST client due to the optional [kbmMW_Rest] attribute.
  18. // The access path to the function from a REST client (like a browser)+
  19. // is in this case relative to the services path.
  20. // In this example: http://.../mactest/helloworld
  21. // Access to the function can be limited using the [kbmMW_Auth..] attribute.
  22. // [kbmMW_Auth('role:[SomeRole,SomeOtherRole], grant:true')]
  23. [kbmMW_Rest('method:get, path:helloworld')]
  24. [kbmMW_Method]
  25. function HelloWorld:string;
  26.  
  27. [kbmMW_Method]
  28. function version:string;
  29.  
  30. [kbmMW_Method]
  31. function EchoString(const AString:string):string;
  32.  
  33. [kbmMW_Method]
  34. function AddNumbers(const AValue1,AValue2:integer;
  35. [kbmMW_Arg(mwatRemoteLocation)]
  36. const ARemoteLocation:string
  37. ):integer ;
  38.  
  39. end;
  40.  
  41. implementation
  42.  
  43. {%CLASSGROUP 'System.Classes.TPersistent'}
  44.  
  45. uses kbmMWExceptions, mainp;
  46.  
  47. {$R *.dfm}
  48.  
  49. // Service definitions.
  50. //---------------------
  51.  
  52. function TkbmMWCustomHTTPSmartService1.AddNumbers(const AValue1,
  53. AValue2: integer; const ARemoteLocation: string): integer;
  54. begin
  55. Result:=AValue1+AValue2;
  56. end;
  57.  
  58. function TkbmMWCustomHTTPSmartService1.EchoString(
  59. const AString: string): string;
  60. begin
  61. Result:=AString;
  62. end;
  63.  
  64. function TkbmMWCustomHTTPSmartService1.HelloWorld:string;
  65. begin
  66. Result:='Hello world';
  67. end;
  68.  
  69. function TkbmMWCustomHTTPSmartService1.version: string;
  70. begin
  71. result:='kbmmw server for macos 64';
  72. end;
  73.  
  74. initialization
  75. TkbmMWRTTI.EnableRTTI(TkbmMWCustomHTTPSmartService1);
  76. end.

服务端做好了

我们可以运行了。

现在做一个简单客户端

设置对应的代码

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. c:IkbmMWSmartClient;
  4. s:string;
  5.  
  6. begin
  7. Transport.Host:=eIP.Text;
  8.  
  9. // Get a client which establishes connection over the given transport
  10. // to the given service which is set to be default for this client.
  11. c:=TkbmMWSmartRemoteClientFactory.GetClient(Transport,'MACTEST');
  12.  
  13. s:=c.Service. helloworld ;
  14. memo1.Lines.Add(s);
  15. s:=c.Service.EchoString('abc');
  16. memo1.Lines.Add(s);
  17. s:=c.Service.version;
  18. memo1.Lines.Add(s);
  19. s:=c.Service.AddNumbers(,);
  20. memo1.Lines.Add(s);
  21.  
  22. end;

运行客户端

正确运行。

基本上比较顺利。

第一个 macOS 64位 kbmmw 服务器的更多相关文章

  1. Windows下64位Apache服务器的安装

    转自:http://www.blogjava.net/greatyuqing/archive/2013/02/13/395308.html 首先需要说明的是,Apaceh服务器没有官方的64位版本,只 ...

  2. 64位Navicat Premium-11.2.7(64bit)访问64位Oracle服务器

    1 在windows 10 64位操作系统安装Navicat Premium-11.2.7(64bit). 2 在服务器安装64位的Oracle(win64_11gR2_database). 3 在h ...

  3. Ubuntu 16.04 64位 tftp服务器搭建

    TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂.开销不大的文件传输服务 ...

  4. Centos6.2_(64位)服务器环境配置:源码编译Nginx

    目标软件都指定安装目录:/apps.由于Nginx可以使用正则表达式来匹配访问路径, 要正常使用此功能就保证安装有Pcre库,如果你已经接着上一篇操作过来,就可以不用考虑这一点,因为此库已经在安装列表 ...

  5. CentOS6.3(64位)下安装Oracle11gR2(64)服务器

    安装环境 Linux服务器:Centos6.3 64位 Oracle服务器:Oracle11gR2 64位 系统要求 1.Linux安装Oracle系统要求 系统要求 说明 内存 必须高于1G的物理内 ...

  6. 它来了!!!有史以来第一个64位Visual Studio(2022)预览版将在今夏发布!

    美国时间2021年4月19日,微软产品研发部一位负责人Amanda Silver在其博客上发布一则<Visual Studio 2022>的消息,表示将在今年(2021年)夏天发布Visu ...

  7. 连接英文字符集的ORACLE和调用存储过程问题及64位服务器连接ORACLE问题

    部署在IIS上的webservice连接英文字符集的ORACLE数据库出现问题“未在本地计算机上注册"MSDAORA.1"提供程序”,解决方案如下: 原因:如错误,64位系统未注册 ...

  8. 三道题(关于虚表指针位置/合成64位ID/利用栈实现四则运算)

    第一题 C++标准中,虚表指针在类的内存结构位置没有规定,不同编译器的实现可能是不一样的.请实现一段代码,判断当前编译器把虚表指针放在类的内存结构的最前面还是最后面.  第二题 在游戏中所有物品的实例 ...

  9. 64位WINDOWS系统环境下应用软件开发的兼容性问题(CPU 注册表 目录)

    应用软件开发的64 位WINDOWS 系统环境兼容性 1. 64 位CPU 硬件 目前的64位CPU分为两类:x64和IA64.x64的全称是x86-64,从名字上也可以看出来它和 x86是兼容的,原 ...

随机推荐

  1. java判断文件真实类型

    代码如下: import java.io.FileInputStream; import java.io.IOException; import java.util.HashMap; /** * &l ...

  2. word2vec原理总结

    一篇很好的入门博客,http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/ 他的翻译,https://www. ...

  3. MySQL导数据笔记

    2019-12-16 9:08:43 星期一 MySQL 5.6 limit / order 有bug, 如果主键不是自增的, 只能全表导出导入, 增量导入导出的话会报主键重复 触发器: 批量导入数据 ...

  4. Sword 哈希表

    哈希表 哈希表是一种典型的以空间换取时间的数据结构,在没有冲突的情况下,对任意元素的插入.索引.删除的时间复杂度都是O().这样优秀的时间复杂度是通过将元素的key值以hash方法f映射到哈希表中的某 ...

  5. Hive、Inceptor数据倾斜详解及解决

    一.倾斜造成的原因 正常的数据分布理论上都是倾斜的,就是我们所说的20-80原理:80%的财富集中在20%的人手中, 80%的用户只使用20%的功能 , 20%的用户贡献了80%的访问量. 俗话是,一 ...

  6. iperf—流量测试

    iperf是另外一款用于流量测试的软件,主要运行于Windows系统和安卓系统的手机/PAD(IOS系统下载需要收费). 一个工作在Server模式,另外一个工作在Client模式,输入Server的 ...

  7. CentOS下安装Tomcat

    CentOS版本:CentOS-7-x86_64-Minimal-1810 1.安装JDK 详情查看:CentOS下安装JDK-rpm文件.CentOS安装JDK-tar.gz文件 2.下载tomca ...

  8. ElasticSearch中"distinct","count"和"group by"的实现

    最近在业务中需要使用ES来进行数据查询,在某些场景下需要对数据进行去重,以及去重后的统计.为了方便大家理解,特意从SQL角度,方便大家能够理解ES查询语句. 1 - distinct ; { &quo ...

  9. identity server4

    dotnet new -i identityserver4.templates   添加模板

  10. Opencv之漫水填充效果

    下面是opencv的漫水填充效果代码 这篇文章仅限个人的笔记 没有详细的注释 放代码 这是简单的示范 int main()//*******************简单的漫水填充算法实例 { Vide ...