Delphi xe 的Indy控件 TIdTCPClient 监听问题
TCPClient.Connect成功以后,会 创建一个线程
//创建线程
ThreadHandle := CreateThread(nil, 0, @TForm5.ClientListen, nil, 0, ThreadId);
下面就是仿照 TIdTCPServer 玩的,原来的 Socket.ReadLn 没有问题,现在换成这个Socket.ReadBytes或者.IOHandler.ReadBytes,都出现一个问题,就是服务器端发送的字节,客户端没有响应也就是 检查len =0,但是客户端发送字节后,服务器照常接收,这个时候上次发给客户端的字节过来了,也就是检查len>0了,很奇怪,也就是大家有什么好的建议
procedure TForm5.ClientListen;
var
len:integer;
s:string;
buffer:TBytes;
begin
while true do
begin
try
len :=Form5.TCPClient.Socket.InputBuffer.Size;
if len > 0 then
begin
//s :=Form5.TCPClient.Socket.ReadLn('');
Form5.TCPClient.Socket.ReadBytes(buffer, len, false);
//Form5.TCPClient.IOHandler.ReadBytes(buffer, len, false);
//转化成字符串
s := stringof(buffer);
Form5.SendConsole.Lines.Add(s);
end;
except
end;
end;
end;
相关推荐
indy10 delphi xe5环境下使用 聊天源代码
可以在indy10 delphi xe5环境下使用 聊天源代码 从indy9 的演示代码中 改编
基于Delphi的网络考试系统源码解析与实战
Indy项目起源于Borland社区,经过多年发展已集成进主流Delphi版本(如Delphi XE以后系列),并持续维护更新。其核心设计理念是“一次编写,多平台运行”,支持Windows、Linux乃至嵌入式系统。其中,和是实现TCP通信的两个最基础也是最重要的类。:代表客户端角色,用于主动发起与服务器的连接请求。该类封装了Socket连接、发送接收数据、超时控制等功能。:代表服务器端角色,监听指定端口,接受多个客户端的并发接入,并为每个连接创建独立的上下文对象(
Delphi VCL DICOM控件开发实战:医疗影像系统底层构建指南
DICOM是医学影像数据交换的国际标准,其解析、渲染与网络通信涉及协议栈、像素级处理和临床合规性等核心挑战。Delphi作为久经验证的Windows桌面开发平台,凭借VCL框架在驱动兼容、GPU可控渲染和零依赖部署等方面具备不可替代的工程优势。本文聚焦DICOM与Delphi VCL的技术融合,深入剖析DICOM协议解析状态机、Intel IPP加速的窗宽窗位实时渲染、C-STORE/C-FIND完整网络服务实现,并覆盖NMPA认证所需的源码可追溯性设计。适用于基层PACS升级、老旧设备对接及AI辅助诊断插
远程截图源代码 indy10 domo delphi xe5环境下 调试
能运行在indy10 的代码太少了,这个远程截图源代码 能运行于indy10 的domo ,本人系统是 delphi xe5环境下 调试成功,代码修正自indy9 。
delphi xe7 tcp socket
delphi xe7 tcp socket


网络通信/分布式开发
