草庐IT

delphi-2006

全部标签

delphi - 如何处理网络丢失和 Indy IdTCPServer

我已经使用IdTCPServer组件创建了一个客户端/服务器应用程序。客户端连接并在应用程序的整个生命周期中保持持久连接。如果网络连接断开(这种情况经常发生,因为客户端使用无线无线网卡连接),客户端将自动重新连接。这一切都很好。我的问题是处理服务器上与丢失连接对应的套接字。他们不会检测到网络中断并自行断开连接。在阅读了几篇相关文章后,我了解到服务器无法知道连接是否断开。它必须等待某个事件才能发现这一点。所以我的问题是,我是否应该在我的服务器中构建某种机制来定期“处理”连接断开的套接字?如果是这样,怎么办?我认为一种方法是循环遍历所有连接并尝试向它们发送数据。我发现这会触发所需的“事件”

delphi - Indy 写缓冲/高效 TCP 通信

我知道,我问了很多问题......但作为一名新的delphi开发人员,我一直在思考所有这些问题:)这个使用indy10处理TCP通信。为了提高通信效率,我将客户端操作请求编码为单个字节(在大多数情况下,当然后面跟着其他数据字节,但在这种情况下只有一个字节)。问题是varBytes:TBytes;...SetLength(Bytes,1);Bytes[0]:=OpCode;FConnection.IOHandler.Write(Bytes,1);ErrorCode:=Connection.IOHandler.ReadByte;不会立即发送该字节(至少不会调用服务器执行处理程序)。例如,如

delphi - 从 "Connection Reset By Peer"Indy TCP 客户端恢复

在这种情况下我应该如何恢复?服务器崩溃,连接异常关闭。对几乎所有内容的调用都会导致“对等方重置连接”异常。我似乎已经通过在exceptblock内的TIdTCPClient对象上调用Disconnect来修复它,但它导致了一个带有相同消息的最终异常(我在第二个try-exceptblock中捕获了它)。这是Indy10和DelphiXE2。tryifnotEcomSocket.ConnectedthenEcomSocket.Connect();exceptone:ExceptiondobegintryEcomSocket.Disconnect();exceptMessageDlg('C

delphi - 构建多线程 TCP/IP 服务器

我想构建一个最多可由100个并发客户端使用的TCP/IP服务器,但仍不确定如何开始。至少我需要服务器:监听客户端,并将它们全部存储在数组或列表中。对于每个客户端,它需要根据其客户端状态接收和发送数据。服务器应该在有人连接或断开连接时更新客户端列表。更喜欢使用GUI作为服务来管理它。任何人都可以帮助如何开始,我查看了indy示例但他们没有帮助,还寻找了大多数组件但仍在搜索。 最佳答案 你需要使用内部多线程的TidTCPServer。无需您管理线程。一切都是透明的,因此您为一个客户编写应用程序的方式与为多个客户编写应用程序的方式(几乎)

delphi - 当设置为 500 毫秒时,*某些* PC 上的 TCP 连接超时为 20 或 21 秒

我得到了10台新PC,所有(据说)都新安装了Windows7Pro,没有对它们进行任何其他操作。我有一个程序,用DelphiXE2编码,使用Indy10组件进行网络连接。我将我的TIdTcpCleint的“连接超时”和“读取超时”属性设置为500ms,将“resusesocket”设置为“o/sdependant”(我还尝试将其设置为No)并保留“使用Nagle”(无论设置为True是什么(我也尝试过设置为false)。这就是问题所在:当我在这些PC上运行相同的.EXE并测试我拔出网络电缆的情况时,我的调试跟踪显示连接尝试/连接超时发生在同一秒或下一秒(带有粒度为1秒)-但在其他情况下

delphi7无法打开的故障解决办法

关于win7下delphi7出现重新注册,无法打开的故障解决办法1、现象  在使用delphi编写程序,非法关闭电脑计算机后,重启电脑,开启delphi7时出现如下故障提示需要重新注册无法打开:如下图所示:2、原因:  因为多个delphi同时更新"$:\documentsandSettings.borland"中的一个或多个文件造成文件破坏(也可能是其他原因导致文件破坏)3、解决办法:删除该目录下的文件打开C盘下的用户目录找到当前用户下的,borland即C:\Users\Administrator.borland文件夹,删除registry.dat文件,重新打开delphi7程序即可解决。

python - 用于 Python 的类似 Delphi 的 GUI 设计器

是否有任何用于Python的GUI工具包,带有类似于Delphi的表单设计器,例如,可以在其中拖放控件以形成表单,移动它们等。 最佳答案 我推荐PyQt(现在来自诺基亚),它使用QtDesigner.Qt设计器生成XML文件(.ui),您可以使用名为pyuic的实用程序将其转换为Python模块,或者从您的Python程序中动态加载。您确实必须在不同的编辑器中编写您的Python代码,即设计器只是GUI设计器部分,而不是完整的IDE。他们有一个名为QtCreator的测试版IDE,但我认为它现阶段对Python的支持不是很好。如果您

python - 我应该如何将 Python 嵌入到 C++ Builder/Delphi 2010 应用程序中?

我有兴趣尝试在我的应用程序中嵌入Python,让用户在应用程序环境中运行Python脚本,访问内部(C++实现的)对象等。我对此很陌生,所以不要确切地知道我在做什么。我已阅读EmbeddingPythoninAnotherApplication,尽管这似乎只谈论CAPI和平面C函数,而不是类或对象(除非我错过了什么),而且它的“在C++中嵌入Python”部分只有两句话长。但是,我也遇到了howtouseboost::python这看起来很棒。有一个问题:boost::pythonisnotsupportedbyC++Builder2010.因此,鉴于此,在使用C++Builder20

Delphi的使用率和前景

Delphi是一种基于Pascal语言的高级编程语言,由美国Borland公司(后来改名为CodeGear,现在归属于Embarcadero公司)开发。自1995年问世以来,Delphi已经经历了20多年的发展历程,成为了Windows平台上广泛应用的开发工具之一。本文将从Delphi的历史、特点、优缺点和应用实例等方面,探讨Delphi在当前的使用率和前景。一、Delphi的历史Delphi最初是为Windows3.1开发的,当时的版本为Delphi1.0。Delphi1.0采用了WindowsAPI(应用程序接口)作为开发工具,提供了可视化开发环境(IDE)和可视化组件库(VCL)。Del

lazarus、delphi文件Http下载断点续传的实现

下载大文件时,断点续传是很有必要的,特别是网速度慢且不稳定的情况下,很难保证不出意外,一旦意外中断,又要从头下载,会很让人抓狂。断点续传就能很好解决意外中断情况,再次下载时不需要从头下载,从上次中断处继续下载即可,这样下载几G或十几G大小的一个文件都没问题。本文介绍利用miniframe开源Web框架分别在lazarus、delphi下实现文件HTTP下载断点续传的功能。本文Demo还实现了批量下载文件,同步服务器上的文件到客户端的功能。文件断点续传原理:分块下载,下载后客户端逐一合并,同时保存已下载的位置,当意外中断再次下载时从保存的位置开始下载即可。这其中还要保证,中断后再次下载时服务器上