DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 17
在线用户: 14
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/9/18 12:06:02
标题:
Delphi Cross Socket 重大更新(2023.09.18) 浏览:5673
加入我的收藏
楼主: https://github.com/winddriver/Delphi-Cross-Socket

主要更新内容

2023.09.18
支持 FPC 3.3.1
支持 OpenSSL 3.x
新增 HTTP 客户端 ICrossHttpClient
新增 WebSocket 客户端 ICrossWebSocket
部分代码重构
一些小问题修正
----------------------------------------------
-
作者:
男 szlbz (秋风) ★☆☆☆☆ -
盒子活跃会员
2023/9/18 14:46:15
1楼:
----------------------------------------------
-
作者:
男 kwer (★★★★★) ★☆☆☆☆ -
普通会员
2023/9/18 15:06:30
2楼: 不知道是否支持 FPC 3.2.2
----------------------------------------------
==========-==========-==========-==========-==========
     多隆, 给我备一匹最快的马, 我有事要走先~~~
==========-==========-==========-==========-==========
作者:
男 szlbz (秋风) ★☆☆☆☆ -
盒子活跃会员
2023/9/18 15:32:39
3楼: @souledge lazarus 2.3.0 fpc 3.3.1 编译demo出错
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/9/18 16:19:28
4楼: FPC好像是从3.2.6才支持匿名函数,DCS中很多地方用到了匿名函数,所以建议至少用FPC 3.2.6以上的版本

楼上编译报错具体什么错误
----------------------------------------------
-
作者:
男 szlbz (秋风) ★☆☆☆☆ -
盒子活跃会员
2023/9/18 16:23:00
5楼: Net.SocketAPI.pas(635,6) Error: Identifier not found "TMarshaller"
Net.SocketAPI.pas(708,19) Error: Identifier not found "TPtrWrapper"
----------------------------------------------
-
作者:
男 szlbz (秋风) ★☆☆☆☆ -
盒子活跃会员
2023/9/18 16:24:08
6楼: fpc的demo都编译不了(lazarus 2.3.0 fpc 3.3.1)
----------------------------------------------
-
作者:
男 kwer (★★★★★) ★☆☆☆☆ -
普通会员
2023/9/18 16:46:50
7楼: @szlbz 一看就是编译器开关都没有理顺,,,看看是在哪个单元
----------------------------------------------
==========-==========-==========-==========-==========
     多隆, 给我备一匹最快的马, 我有事要走先~~~
==========-==========-==========-==========-==========
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/9/18 16:54:48
7楼: 没道理啊,这两个都是rtl自带的类型,TMarshaller是SysUtils单元里定义的,TPtrWrapper是System单元里定义的,我感觉是你的FPC有点问题

建议用 fpcupdeluxe 在新目录重新生成一套 FPC + Lazarus 的环境试试
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/9/18 16:57:51
8楼: 另外顺带提一下,这次更新增加了一个Utils.Hash单元,该单元需要依赖CnVCL,CnVCL自行从GitHub上拉取吧
----------------------------------------------
-
作者:
男 abcjingtong (jingtong) ★☆☆☆☆ -
普通会员
2023/9/18 23:16:08
9楼: 太棒了,这是我用过的最好的http,socket,websocket控件
----------------------------------------------
18114532@qq.com
作者:
男 qewnja (伊亓) ★☆☆☆☆ -
普通会员
2023/9/19 14:50:54
10楼: @souledge
能不能搬运到网盘上?github.com打不开,感谢感谢
----------------------------------------------
-
作者:
男 dolang (dolang) ★☆☆☆☆ -
普通会员
2023/9/19 16:35:31
11楼: 太棒了,这是我用过的最好的http,socket,websocket控件
----------------------------------------------
-
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2023/9/19 18:00:29
12楼: 太棒了,这是我用过的最好的http,socket,websocket控件
----------------------------------------------
虽千万人吾往矣!
作者:
男 edwinyeah (Edwin) ★☆☆☆☆ -
盒子活跃会员
2023/9/19 18:05:54
13楼: 楼主威武!
----------------------------------------------
-
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2023/9/19 21:05:38
14楼: Commits on Sep 18, 2023
此帖子包含附件:keymark_202391921536.zip 大小:10.21M
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 bbnn38 (伟大的咸鱼) ★☆☆☆☆ -
普通会员
2023/9/19 23:56:01
15楼: 留名做标识,好东西。
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/9/20 11:15:50
16楼: 目前发现开启ssl的情况,偶尔会出现 SSL_read error 1,也就是 SSL_ERROR_SSL

用 WebSocketServer + WebSocketClient 这两个 demo 测试就能偶尔出现

请有 ssl 开发经验的朋友也帮忙看看这个问题应该如何解决,希望大家能帮我一起完善DCS,感谢
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2023/9/20 13:25:55
17楼: 我们用delphi做HTTP server时,在生产中,用得最多的是,返回生产数据,就是从数据库里面查询后,返回json数组给查询方,但是几乎很少看到如何使用数据库返回的文章,在http server里面返回,是个多线程的过程,到底应该如何使用控件,如何使用数据库控件,也很少这方面的资料。光是返回几个文字,在生产上有什么用?
----------------------------------------------
-
作者:
男 yangyachao (常安宁) ▲▲△△△ -
普通会员
2023/9/20 13:41:04
18楼: 能返回文字就能返回数据集数据,多线程使用数据库,保证每个线程有自己的独占连接基本上就没啥问题,怎么写怎么返回怎么组织数据集大家需求都不一样,demo意义不大
----------------------------------------------
-
作者:
男 dbcoder (dbcoder) ▲▲△△△ -
普通会员
2023/9/20 13:41:38
18楼: 请教一下,如果用这个做大并发量的接收和下载文件服务器,是否可行?
----------------------------------------------
-
作者:
男 421 (421) ★☆☆☆☆ -
盒子活跃会员
2023/9/20 14:51:02
19楼: @huangxing (gx)
使用楼主的DCS,可以多线程处理的
1、接收到查询json后,给AHandled赋值True,把查询json里添加Connection.UID
2、在客户端的超时时间内交给在其他线程或者转发到接口处理
3、数据处理完成后通过UID查找到客户端使用Connection.Response.Json(data)返回就行了
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2023/9/20 15:00:22
20楼: 我们在生产上,使用httpserver,使用动态生成数据库连接,动态生成数据库控件,用FDConnection和FDQuery1控件,每次都create,感觉始终不是很稳定,运行一段时间后就会卡死,生成的数据库控件每次都free或者nil 了的,但是如果长时间运行,就会报错,而且不管用什么都捕捉不到这个错误,就是弹一个什么0000的错误,软件就停止运行了。也许是我的软件做得不是很好。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2023/9/20 15:06:01
21楼: 我用http server控件,接收数据,我就是把数据先保存进一个字符串数组里面,然后再把这个数组的,数据,在一个timer里面保存进数据库,这样长时间运行,软件都会死掉。
比如在CommandGet时间中,来一条数据,就写:
          for I := 1 to 400 do
          begin
          if GetHisString[I]='' then
          begin
          GetHisString[I]:=ARequestInfo.Params.text;
          break;
          end;

          end;

这样,然后在timer里面保存一条数据,就让数组清空一条

如:
if GetHisString[I]=<>'' then
  begin
    保存进数据库;
     GetHisString[I]:='';
  end;

就这样的一个过程,一天下来,软件都会死掉,真的不知道怎么处理,关键你还捕捉不到它什么异常,就是软件不动了。停在哪里了。哪个timer也不触发了。
----------------------------------------------
-
作者:
男 421 (421) ★☆☆☆☆ -
盒子活跃会员
2023/9/20 15:21:20
21楼: 长时间运行出现问题内存泄漏可能性比较大,不想每次都创建释放可以使用数据连接池,简单的连接池可以使用坛子里另外一个大神的QDAC组件,里面有个QSimplePool,借助作者的例子很容易实现,处理了OnNewItem和OnFree,使用pop和push借和还
----------------------------------------------
-
作者:
男 421 (421) ★☆☆☆☆ -
盒子活跃会员
2023/9/20 15:26:12
22楼: @21楼
你们的生产环境数据量应该比较小,这样处理很慢的
这样处理软件死掉我猜原因是读写数据时候没锁定造成的
----------------------------------------------
-
作者:
男 cxg417 (cxg417) ★☆☆☆☆ -
盒子活跃会员
2023/9/20 15:34:29
23楼: 有没有使用说明文档?
----------------------------------------------
-
作者:
男 hnxxcxg (咏南中间件) ★☆☆☆☆ -
盒子活跃会员
2023/9/20 21:56:15
24楼: 使用最新的cross socket,delphi编译linux64程序报错,见附图。老版没有问题。
此帖子包含附件:
PNG 图像
大小:33.4K
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2023/9/20 22:07:11
25楼: Commits on Sep 20, 2023
此帖子包含附件:keymark_20239202279.zip 大小:10.22M
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 wg961423 (麦子仲肥) ★☆☆☆☆ -
盒子活跃会员
2023/9/21 9:40:33
26楼: 编译Utils.Hash报少文件,看起来使用了CNVCL里的东东
----------------------------------------------
-
作者:
男 wr960204 (武稀松) ★☆☆☆☆ -
盒子活跃会员
2023/9/21 10:21:41
27楼: 顶一个,这个项目我做服务端一直在用。
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/9/21 11:41:48
27楼: @hnxxcxg 抱歉,没有测试Delphi-Linux的编译,我这边Linux程序基本是用FPC编译的,已经修正提交了

@wg961423 Utils.Hash的确需要依赖CnVcl,前面我已经提过了,可以自己去GitHub拉取
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/9/21 11:43:57
28楼: @wr960204 武大是业内大牛,关于ssl的问题,能否帮忙参详参详?
----------------------------------------------
-
作者:
男 blueflag (昆了) ★☆☆☆☆ -
盒子活跃会员
2023/9/21 15:20:19
29楼: 能不能搞一个mqtt的server
----------------------------------------------
-
作者:
男 dolang (dolang) ★☆☆☆☆ -
普通会员
2023/9/25 8:46:37
30楼: httpclient不能连接自签名的服务器,可否添加一个忽略证书检查的属性了?
----------------------------------------------
-
作者:
男 lanhongcheng (lanhongcheng) ▲△△△△ -
普通会员
2023/9/25 9:50:08
32楼: 我升级到楼住的前几天发布的最新版本,编译所有demo 都报这个错误.目标系统是ubuntu 22.04 ,大哥们帮我分析分析下原因.我比较着急
此帖子包含附件:
JPEG 图像
大小:132.2K
----------------------------------------------
-
作者:
男 bdl1 (bdl1) ▲▲▲▲▲ -
普通会员
2023/9/25 10:29:55
33楼: 赞一个!
----------------------------------------------
-我的博客
作者:
男 jwj76 (禁卫) ▲△△△△ -
普通会员
2023/9/25 20:51:51
34楼: 32楼好像是没安装Linux支持一样。
----------------------------------------------
-
作者:
男 lanhongcheng (lanhongcheng) ▲△△△△ -
普通会员
2023/9/26 14:10:07
35楼: @jwj76  , 官方要求的那个zlib库ubuntu更新好了啊,这个更新版之前的那个最新版,我编译LINUX程序正常的啊
----------------------------------------------
-
作者:
男 lotsbug (lotsbug) ★☆☆☆☆ -
普通会员
2023/9/28 11:13:18
36楼: 相见恨晚,之前因为只支持openssl的1.0.1x版本,Mac上怎么都装不好低版本又找不到直接能用的dylib,只好在mac上面下载那个版本源码编译出.o文件来静态连接,还好照样运行稳定,而且不用多带dll不依赖mac环境,现在服务端开发都是用的这个组件,稳得一批,还可以跟Win和Mac的桌面端共用代码,爽得狠呐。
期待MQTT服务端和客户端支持。
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/9/28 12:02:19
37楼: MQTT倒是可以考虑,不过大致翻了下官方的协议文档,还是比较复杂,暂时没有那么多时间去搞,等以后有时间研究下

再次呼吁一下,大家一起帮忙解决下 openssl 部分不稳定的问题,目前通过 abs或bombardier 压测 HttpServer 发现会出现 SSL_read 错误,一旦该错误出现,本来已经握手完成的 ssl 居然会变回未握手状态,导致无法继续正常通讯
----------------------------------------------
-
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2023/9/28 14:25:08
38楼: Commits on Sep 27, 2023
此帖子包含附件:keymark_202392814255.zip 大小:10.22M
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 board4all (搬运) ▲▲▲▲▲ -
普通会员
2023/9/28 22:22:53
39楼: 是不是证书验证失败。如果关闭证书验证,还会出现SSL_read错误吗
----------------------------------------------
-
作者:
女 newzyt (QL) ★☆☆☆☆ -
盒子活跃会员
2023/9/29 23:59:48
40楼: 使用了几年很不错,但是最近的升级稳定性大幅下降,错误也多。不能稳定正常使用还是先退回老版本
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2023/9/30 4:09:53
41楼: 太棒了,这是我用过的最好的http,socket,websocket控件
----------------------------------------------
只有偏执狂才能生存!
作者:
男 cxg417 (cxg417) ★☆☆☆☆ -
盒子活跃会员
2023/9/30 22:48:14
42楼: 楼主,咨询一个问题,浏览器上传的文件,服务端接收后都保存在Temp文件夹,并取了个随机值做文件名。服务端怎么写代码才能在上传文件接收完成后,将这个文件从Temp文件移到指定的文件夹中。
----------------------------------------------
-
作者:
男 learndelphi (beside) ★☆☆☆☆ -
盒子活跃会员
2023/10/1 0:43:48
43楼: Exception class ECrossHttpClient with message 'Invalid protocol:wss'
请问这个怎么查找问题
----------------------------------------------
-
作者:
男 zlxym (zlxym) ★☆☆☆☆ -
盒子活跃会员
2023/10/1 2:46:18
44楼: 和32楼一样的错,Delphi 11.3编译HttpServer, ubuntu20.04,什么原因?哪位知道吗?
在22.04下也一样的错,但编译其他linux程序正常
----------------------------------------------
-
作者:
男 learndelphi (beside) ★☆☆☆☆ -
盒子活跃会员
2023/10/1 14:32:56
45楼: TSSLTools.LibSSL := 'libssl-3.dll';
   TSSLTools.LibCRYPTO := 'libcrypto-3.dll';
   //TSSLTools.SSLVersion.:='tls1_2';
 __WebSocket:=TCrossWebSocket.Create('wss://wss.xser.cn:34567' );
 __WebSocket.OnOpen(
    procedure
    begin
     recmemo.Lines.Add('Open');
    end);

Exception class ECrossHttpClient with message 'Invalid protocol:wss'ECrossHttpClient 中没有对ws和wss的判断。
还有可能是这个加载ssl有问题请那位指点一下。感谢

请问这个怎么查找问题
----------------------------------------------
-
作者:
男 lanhongcheng (lanhongcheng) ▲△△△△ -
普通会员
2023/10/1 19:59:39
46楼: @zlxym  44楼,看来你和我的32楼问题一样啊?老版本是没有这个问题的.我升级楼主最新的这个升级版本编译,就是这个错误.关键这个错误无法找到原因啊?无解了吗?
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/1 21:08:05
47楼: @newzyt 具体有什么错误,欢迎到github提交

@cxg417 上传的文件,可以在响应回调里访问 ARequest.Body 获取到,如果有文件上传,那 ARequest.BodyType 应该是 btMultiPart,然后 ARequest.Body as THttpMultiPartFormData,建议看看 THttpMultiPartFormData 的源码,位于 Net.CrossHttpParams.pas 中

@learndelphi TCrossWebSocket是会自动检测ws和wss的,你可以看到我上传的WebSocketClient的demo就是使用的 wss,TCrossWebSocketMgr.CreateHttpCli这个方法中会自动根据ws/wss创建相应的httpcli对象

@lanhongcheng Delphi Linux编译的问题我也不知道啥情况,我机器里的delphi环境现在也有问题,编译一个新建的空的console程序,设置目标平台为Linux都会报错,我怀疑你这个和我一样,是delphi环境哪里出了问题
----------------------------------------------
-
作者:
男 lanhongcheng (lanhongcheng) ▲△△△△ -
普通会员
2023/10/1 22:01:56
48楼: @souledge  用你这次最新更新编译不通过,之前的那个版本编译LINUX没有任何问题哦.也是11.3 编译的LINUX程序,没有问题.现在是不知道是不是你新版本要求的编译环境是不是要求什么新的东西?都不知道从何查起
----------------------------------------------
-
作者:
男 lanhongcheng (lanhongcheng) ▲△△△△ -
普通会员
2023/10/1 22:04:58
49楼: 我想用最新版本的websocketclient 和  对应的server,一直用你这套跨平台的,很好用.相当不错,如图的提示. C路径没找到,
此帖子包含附件:
JPEG 图像
大小:132.2K
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2023/10/1 22:09:56
48楼: 请问新版还能使用OpenSSL 1.X吗?主要是对旧版本比较熟悉,且到处使用,所以尽量不想使用OpenSSL 3.X
----------------------------------------------
只有偏执狂才能生存!
作者:
男 cxg417 (cxg417) ★☆☆☆☆ -
盒子活跃会员
2023/10/1 22:44:08
50楼: 谢谢楼主回答,已经拜读源代码并解决,但是还有个问题,就是在响应回调里,上传的文件还是处于独占状态,移不走。不过我修改源码也解决了,最好是官方版本能修正这个问题。
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/2 11:38:14
51楼: @nevergrief 由于 openssl 1.1以后的版本接口与老的1.0的版本有非常大的不同,所以新版本不兼容老版本,要继续用老版本可以自行替换openssl相关的两个单元文件换回老的

@cxg417 如果需要移动文件,可以调用 TFormField.FreeValue 方法释放文件流,然后就可以移动了
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/2 16:41:47
52楼: @lanhongcheng delphi-linux的编译错误已经修正,已提交到github
----------------------------------------------
-
作者:
男 lanhongcheng (lanhongcheng) ▲△△△△ -
普通会员
2023/10/2 18:54:53
53楼: 感谢啊,这么快找到原因了吗?
----------------------------------------------
-
作者:
男 learndelphi (beside) ★☆☆☆☆ -
盒子活跃会员
2023/10/2 18:59:15
54楼: 感谢回复,不过我还是不能连上服务器。用例子改地址也不行。
使用 sgcWebSocketClient 是可以连上的。sgc的配置如下:我怀疑是我参数没有设置正确。
oClient := TsgcWebSocketClient.Create(nil);
oClient.URL := 'wss://www.esegece.com:2053';
oClient.TLSOptions.Version := tls1_2;
oClient.TLSOptions.IOHandler := iohSChannel;
//oClient.OnSSLAfterCreateHandler := OnSSLAfterCreateHandlerEvent;
//oClient.OnConnect := OnConnectEvent;
oClient.Active := True;
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/2 19:52:59
55楼: @learndelphi 我测试了你发的地址,用我的代码连接成功之后,再继续通讯就会出现SSL_read错误,应该还是我这个ssl代码有问题,前面我也提到过ssl的问题,这个还需要研究,也请大家帮忙一起分析下,主要就是 Net.CrossSslSocket.OpenSSL.pas 这个单元
----------------------------------------------
-
作者:
男 lanhongcheng (lanhongcheng) ▲△△△△ -
普通会员
2023/10/2 19:59:50
56楼: 52楼 经测试,确定已完美修正.感谢感谢
----------------------------------------------
-
作者:
男 zlxym (zlxym) ★☆☆☆☆ -
盒子活跃会员
2023/10/2 20:38:58
57楼: 确认linux编译问题已经修正,谢谢作者的工作。
----------------------------------------------
-
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2023/10/2 22:33:38
58楼: Commits on Oct 2, 2023
此帖子包含附件:keymark_2023102223336.zip 大小:10.22M
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/2 23:11:22
59楼: 重要更新:

已初步确定ssl问题并修正,修正后的代码已经经过了bombardier和abs千万次的压测

代码已提交到github,欢迎测试,如有问题请直接github提交或论坛留言
此帖子包含附件:
PNG 图像
大小:94.9K
----------------------------------------------
-
作者:
男 cxg417 (cxg417) ★☆☆☆☆ -
盒子活跃会员
2023/10/2 23:20:23
60楼: 牛,佩服!学xi了几天,用起来很方便,功能也很全
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2023/10/3 7:43:53
61楼: https://github.com/登录不了,谁可以下载一份放本站,谢谢。
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2023/10/3 8:06:12
62楼: Delphi-Cross-Socket-master2023-10-03
请别人下载的,和我一样的,可以从这里下载
此帖子包含附件:gaoyong_gy_2023103865.zip 大小:10.22M
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2023/10/3 10:10:23
63楼: CrossSocket需要的cnpack单元,您解压后放在utils目录下即可.rar

这样就不用安装cnpack了。如果您不想安装的话。
此帖子包含附件:gaoyong_gy_2023103101023.rar 大小:107.0K
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 learndelphi (beside) ★☆☆☆☆ -
盒子活跃会员
2023/10/3 11:51:04
64楼: 牛,可以连接返回数据了。
非常感谢
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2023/10/4 13:58:57
65楼: 目前测试存在的一些问题(可能是linux下ssl功能有问题,期待作者修正通讯库):
如果是lunux服务端不开启ssl功能,客户端在linux,各项功能基本正常;客户端在windows,各项功能基本正常。
如果是lunux服务端开启ssl功能,客户端在linux,有些功能不正常,如post时,如果数据比较长如一张图片base64字符串,服务端会闪退;客户端在windows,各项功能基本正常,前面bug不存在。
如果是windows服务端不开启ssl功能,客户端在linux,各项功能基本正常;客户端在windows,各项功能基本正常。
如果是windows服务端开启ssl功能,客户端在linux,各项功能基本正常;客户端在windows,各项功能基本正常。
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/5 11:12:34
66楼: @gaoyong_gy 修正了一个解析MultiPart数据的bug,已提交到github,你可以用最新版本再测试下还有没有post超大base64数据闪退的情况,如果还会出现,请将该base64文件通过email发给我,我好用来测试
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2023/10/6 13:38:07
67楼: crosssokcet20231005版本测试linux下服务端ssl开启时linux客户端post长字符串服务端闪退.rar
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/7 14:03:19
68楼: @gaoyong_gy 用最新版再试试,我这里用你发的数据反复测试没有出现异常了
----------------------------------------------
-
作者:
男 421 (421) ★☆☆☆☆ -
盒子活跃会员
2023/10/7 16:47:40
69楼: Windows服务端作为应用程序运行一切正常,但是同样的环境下编译成Windows服务程序启动正常,非ssl端口正常,ssl端口返回错误:Error: write EPROTO 77255688:error:10000410:SSL routines:OPENSSL_internal:SSLV3_ALERT_HANDSHAKE_FAIL
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2023/10/8 10:42:22
70楼: 用最新版本还是一样的问题:
服务端在linux下开启ssl运行,客户端在linux下用https的post提交,MyHTTPClient.ContentType := 'application/x-www-form-urlencoded';或者MyHTTPClient.ContentType := 'multipart/form-data';如post的数据太长,服务端直接直接闪退。
服务端还没有到OnHttpSvrRequest(const Sender: TObject; const Request: ICrossHttpRequest;
const Response: ICrossHttpResponse; var AHandled: Boolean);这个事件,就闪退了。

aStrlist := Tstringlist.Create;
    aStrlist.Add('path=' + serverpath); // 参数1
    aStrlist.Add('filename=' + serverfilename); // 参数2
    astr:=aEncoding.EncodeBytesToString(Stream2Bytes(ms));
    aStrlist.Add('wj=' + astr); // 参数3  文件  将文件流变成bytes然后再base64编码,服务器接收到后再base64反编码
    aStrlist.Add('GetGUID=' + GetGUID); 

就post个aStrlist,以application/x-www-form-urlencoded这种方式,如果astr是我上面传递给你的值,服务端就闪退。astr变短一点,如字符串长度在9000以内似乎都没有问题,长度在几万以上都不行。


但不开ssl,客户端用http的post提交,正常。以上都在linux下测试。
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 blueflag (昆了) ★☆☆☆☆ -
盒子活跃会员
2023/10/8 15:10:20
71楼: github 发现有用这个 Delphi-Cross-Socket 的socket api 开发的mqtt ,能否研究研究一起维护
https://github.com/join2017/dmqtt
----------------------------------------------
-
作者:
男 421 (421) ★☆☆☆☆ -
盒子活跃会员
2023/10/8 17:13:11
72楼: @blueflag (昆了) 你发这个只是mqtt客户端,而且还不支持mqtt v5,等souledge (souledge)直接支持mqtt吧,现在可以用mosquitto作为服务端,论坛里记得有人发基于mosquitto客户端dll的源码同时支持v3和v5也挺稳定,客户端也可以使用QDAC里提供的很神奇的mqtt客户端,设置成v3也能使用v5的共享特性
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2023/10/9 3:36:07
73楼: to gaoyong_gy
按你的描述,我怀疑是OpenSSL没有处理好数据,对数据的长度有限制。这个不属于Cross的bug,但是没办法,如果向好用,souledge就得看看是啥原因(调用openssl的动态库,好像没法调试?高勇最好截图,看崩溃在哪一步、哪一个函数,虽然无法执行到DLL里),也不用太费脑筋,就是看看openssl有没有设置什么开关。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2023/10/9 10:37:25
74楼: 期待完美的crosssocket。
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/9 11:32:40
75楼: @gaoyong_gy 不清楚你用的客户端是啥,我测试过post几百兆甚至几G的数据都不会有问题,客户端直接使用Postman提交,服务端开启SSL,在Linux-X64、Linx-ARM64、Linux-龙芯、Windows-X64,都测过,都没问题
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2023/10/9 12:43:21
76楼: to souledge
到群里直接联系一下gaoyong,让他把demo传给你,直接在他的服务器上做测试,不就行了?何必在帖子里说,还说不清楚。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2023/10/9 12:52:49
77楼: postman也是在linux下吗?我是用delphi的nethttpclient提交的。

客户端在windows下是没有问题的。客户端也要在linux下才有问题
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 bdl1 (bdl1) ▲▲▲▲▲ -
普通会员
2023/10/10 14:19:07
78楼: 这还能跟不同的客户端所在平台的不同有关系?真让人想不到。
----------------------------------------------
-我的博客
作者:
男 lanhongcheng (lanhongcheng) ▲△△△△ -
普通会员
2023/10/11 10:47:00
79楼: Delphi-Cross-Socket 新版的websocketclient  websocketserver  ping pong 不是组件内核维护的吗? 怎么没看到 onping on pong 事件触发啊
----------------------------------------------
-
作者:
男 421 (421) ★☆☆☆☆ -
盒子活跃会员
2023/10/11 12:03:53
80楼: @lanhongcheng (lanhongcheng) 可以看看源码里自带的Demos
----------------------------------------------
-
作者:
男 421 (421) ★☆☆☆☆ -
盒子活跃会员
2023/10/11 14:40:15
81楼: 如果需要自动踢掉异常链接,服务器可以在连接成功设置TSocketAPI.SetKeepAlive
----------------------------------------------
-
作者:
男 bdl1 (bdl1) ▲▲▲▲▲ -
普通会员
2023/10/17 8:17:07
82楼: to souledg,gaoyong_gy:上面的问题解决了吗?
----------------------------------------------
-我的博客
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2023/10/17 12:17:26
83楼: @bdl1 我这边验证过没有问题
我认为是Delphi的Linux NetHttpClient 发出了异常数据, 导致解码时出现异常了
我测试用Postman以及我自己写的 CrossHttpClient 发送同样的数据, 不管是在 Windows 下还是在 Linux 下都完全没问题, 而且我测试了比 gaoyong_gy 提供的数据大几十倍的数据都没有任何问题, 他那个字符串也就1M多点,我测试发送了几十M的都是没问题的

顺便提一下,Delphi RTL的实现其实很多都不是太好,要不然我也不至于自己重写了很多基础代码
----------------------------------------------
-
作者:
男 powerpcer (大强) ★☆☆☆☆ -
禁用账号
2023/10/27 9:30:55
84楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
呆湾傻冒
作者:
男 yesin119 (yesin119) ★☆☆☆☆ -
盒子活跃会员
2024/1/20 17:25:05
85楼: 不好意思,请问一下,这个控件全是pas文件,怎么安装呢?
----------------------------------------------
-
作者:
男 abcjingtong (jingtong) ★☆☆☆☆ -
普通会员
2024/1/22 10:14:03
86楼: 没有安装,目前我也是参考demo,使用动态创建的方式使用。怎么说呢,看个人喜好,不安装有不安装的好处
----------------------------------------------
18114532@qq.com
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2024/1/22 11:00:57
87楼: 继承自TComponent的东西才需要安装,如果没有从TComponent继承的类,那就不需要安装

继承自TComponent的东西,不安装也可以在代码里使用,只是不能从IDE拖到窗体上
----------------------------------------------
-
作者:
男 yesin119 (yesin119) ★☆☆☆☆ -
盒子活跃会员
2024/1/22 12:14:04
88楼: 嗯,多谢解答。个人感觉确实有点不方便,事件这些都用需要代码直接写?感觉少了点什么....另外控件在哪个单元,第一次使用得去搜一下,没有特殊命名的单元..感觉都很中性。

感谢回复
----------------------------------------------
-
作者:
男 asen521 (Asen) ★☆☆☆☆ -
普通会员
2024/3/21 6:15:30
89楼: 已经下载研究中,感谢作者!!
----------------------------------------------
-没有最好的工具,只有刻苦的程序员!
作者:
男 asen521 (Asen) ★☆☆☆☆ -
普通会员
2024/3/21 16:26:21
90楼: 一直想进作者的Q群,麻烦通过一下呗。
----------------------------------------------
-没有最好的工具,只有刻苦的程序员!
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2024/3/22 11:47:09
91楼: 我不用QQ很多年了,Q群应该是热心网友建的
----------------------------------------------
-
作者:
女 newzyt (QL) ★☆☆☆☆ -
盒子活跃会员
2024/3/23 22:23:31
92楼: 更新 OpenSSL 后 https 服务总是运行几十小时后会没有响应,调试不到原因呀
----------------------------------------------
-
作者:
男 421 (421) ★☆☆☆☆ -
盒子活跃会员
2024/3/24 19:42:22
93楼: 在QQ群留了几次言没反应还以为作者属于高冷型的呢:)
----------------------------------------------
-
作者:
男 souledge (souledge) ★☆☆☆☆ -
普通会员
2024/3/25 10:09:06
94楼: 平时工作比较忙,QQ群这种东西太分散注意力了

有问题欢迎去github提交,有时间我会看的
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行179.6875毫秒 RSS