请问我这段代码接受网络数据,有什么毛病,总出现地址访问错误

sparrownet 2003-11-22 11:10:31
我用IdUDPServer的onudpread事件从网络接受数据,
这个事件有一个参数AData,我想把AData的内容读到本地
的一个临时变量content(string类型)里,代码如下
procedure TForm1.IdUDPServerUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
content : string;
buf : PCHAR;
begin
if AData.Size > 0 then
begin
buf := StrAlloc(AData.Size*SizeOf(Char));
AData.Seek(0, soFromBeginning);
AData.Read(buf, AData.Size);
content := buf;
//use content here.
myrichedit.lines.add(content);

StrDispose(buf);
end;
end;
可是程序读到AData.Read总出现异常,这是为什么,哪位
给看一下,我这段代码有什么毛病
...全文
28 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wengj 2003-11-22
  • 打赏
  • 举报
回复
AData.Read(buf^, AData.Size);
wengj 2003-11-22
  • 打赏
  • 举报
回复
也不需要重新定义一个变量呀
强制一下就可以了 myrichedit.lines.add(string(buf));
内容概要:本文围绕“模块化”这一软件设计思想展开,阐述了其核心定义、关键特性和实际应用场景。模块化强调将软件系统划分为功能明确、相互独立的模块,通过接口实现模块间通信,从而提升系统的可维护性、可扩展性与可测试性。文章还介绍了模块化的五大特性——独立性、可复用性、可维护性、可扩展性和可测试性,并指出其在大型系统开发、微服务架构、组件化设计和敏捷开发中的广泛应用。此外,文中提及耦合与内聚两个重要指标,以及模块化与软件架构的关系,最后列出备考要点,帮助掌握模块划分方法、接口设计规范及其优劣势分析。; 适合人群:具备一定软件工程基础知识,从事软件开发、系统设计相关工作的技术人员,尤其是正在准备相关技术考试的研发人员。; 使用场景及目标:①用于指导大型软件系统的架构设计,提升代码复用与团队协作效率;②帮助开发者理解如何通过降低耦合、提高内聚来优化模块划分;③支持微服务与组件化开发中的模块边界定义;④辅助学习软件设计原则和应对技术类考试。; 阅读建议:学习时应结合实际项目案例,深入理解模块化的设计原则与实施策略,并重点关注模块接口设计、耦合与内聚的平衡,以及在不同架构风格中的应用方式。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧