草庐IT

delphi-xe5

全部标签

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

Python Django 编码错误,非 ASCII 字符 '\xe5'

你好,我遇到了PythonDjango的编码错误。在我的views.py中,我有以下内容:fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsefromdjango.template.loaderimportget_templatefromdjango.templateimportContext#Createyourviewshere.defhello(request):name='Mike'html='Hi%s,thisseemstohave!!!!worked!'%namereturnHttpRespons

Python:Unicode 和 "\xe2\x80\x99"让我抓狂

所以我有一个来自Google文档的.txt文件,其中包含大卫福斯特华莱士的“Oblivion”中的一些行。使用:withopen("oblivion.txt","r",0)asbookFile:wordList=[]forlineinbookFile:wordList.append(line)然后返回并打印我得到的wordList:"surgeryonthecrow\xe2\x80\x99sfeetaroundhereyes."(并且它截断了很多文本)。但是,如果我不附加wordList而只是forlineinbookFile:printline一切顺利!.read()'ing文件也是