草庐IT

delphi-6

全部标签

mysql - 为从 Delphi 到 MySQL 的 ADO 连接指定源 IP

我的Delphi应用程序正在使用tAdoConnection连接到MySQL数据库。我的客户有一台机器,它有两个通过网络连接到数据库服务器的连接。一个是有线的,另一个是无线的。所以运行应用程序的机器在同一个网络上有两个IP地址。我的问题是这台机器上的无线连接不稳定。所以我想强制通过有线连接建立数据库连接。我知道我要使用的源IP地址。但是我如何告诉ADO连接它需要通过那个源IP进行连接呢? 最佳答案 您不需要在ADO中寻找此功能,可以使用将您的ADO应用程序绑定(bind)到特定网络接口(interface)(或网络连接)的外部应用程

delphi - Indy 10 TCP Client Server - 测试开放通信 channel

我正在修改一个Indy10TCP/IP应用程序,我希望得到您关于实现执行以下操作的客户端功能的建议/意见/示例代码a)在应用程序启动时显示初始屏幕时,它会验证客户端计算机是否可以访问互联网并且TCP服务器已启动并正在运行并等待通信。如果不是这种情况,应用程序应该终止。b)在客户端和服务器之间进行任何数据交换之前执行上述(a)此外,服务器是否需要重复广播某种消息以通知潜在客户它已启动并正在运行?感谢您的协助。 最佳答案 如何验证是否可以连接到TCP服务器?第一个问题;肯定会将连接尝试包装到一个单独的线程中,您将在启动画面显示时运行该线

c# - Delphi和c#之间的TCP通信问题

我正在尝试使用TCP从c#客户端向delphi服务器发送文本行。两者都只是在本地主机上运行。我希望客户端在合适的时候发送文本行,并且服务器能够在合适的时候一次一行地从传入流中读入和处理它们。下面的代码通过显示“某行文本1”的delphi备忘录实现了这一点。之后,c#返回并显示连接被强行关闭的异常。如果每次发送一行文本时关闭客户端连接并重新建立一个新连接,我就可以达到预期的效果。但这非常慢,并且不适合我的预期用途。我是TCP的新手,对自己在做什么一无所知!非常感谢任何有助于实现预期结果的帮助。Delphi服务器代码是....procedureTForm1.FormCreate(Sende

delphi - 具有恢复支持的 Indy Http Server

我已经编写了一个独立的http服务器,我想提供支持恢复的文件下载服务。当我使用IDM下载文件时,下载是单线程的:请注意,恢复能力是是,但是当我暂停并恢复下载时,它会从头开始。我的IndyHttp服务器是这样的:void__fastcallTfrmMain::httpServerCommandGet(TIdContext*AContext,TIdHTTPRequestInfo*ARequestInfo,TIdHTTPResponseInfo*AResponseInfo){Beep(1000,100);stringfileName=ExtractFileDir(Application->E

delphi - 如何使用 Delphi 识别子网上的 Windows 主机?

我有一个管理应用程序,我希望它能够“发现”同一子网上或用户指定的子网上的Windows主机。您认为使用Delphi快速发现一系列主机是否在线的最佳方法是什么?我考虑过ping主机(可能是usingWMIandDelphi),但我相信可能有更可靠的方法。我担心客户端可能被配置为不响应ping请求。使用nbtscan,我可以很快得到我子网上的Windows主机列表:nbtscan192.168.1.0/24我希望能够复制此功能,但我不确定从哪里开始。目前我正在使用ICScomponentcreatedbyFrançoisPiette适用于Delphi2010。我欢迎任何建议。

Delphi 和 TIdTCPServer.OnExecute : How to correctly merge data

一个非常简单的问题,我似乎无法找到明确的答案。我有一个经典的TCPIndy服务器。我以block的形式发送数据。每个数据包以1个或多个block发送。当它到达时,每个数据包都会触发一次或多次OnExecute。在任何给定时间,不止一个客户端可以发送数据。我如何知道我在OnExecute中接收哪个客户端/数据包的数据?我知道这可能是一个微不足道的问题,但我想得到一个明确的答案。 最佳答案 如果你可以设计协议(protocol),它可以这样做:客户端以包含总大小和block大小的初始命令开始服务器OnExecute创建一个临时输出文件流

delphi - 如何确定与 Indy 的连接是否仍然存在?

我使用Indy进行TCP通信(D2009,Indy10)。评估客户请求后,我想将答案发送给客户。因此,我像这样存储TIdContext(伪代码)procedureConnectionManager.OnIncomingRequest(Context:TIdContext);beginTask:=TTask.Create;Task.Context:=Context;ThreadPool.AddTask(Task);end;procedureThreadPool.Execute(Task:TTask);begin//PerformsomecomputationContext.Connect

delphi - 使用Delphi 2010编写TCP IP消息系统(客户端/服务器)的建议

我想在Delphi2010中使用TCPIP编写一个消息传递系统。我想听听我使用标准Delphi2010组件/indy组件执行此操作的最佳选择是什么。我想编写一个服务器来监听消息并将消息转发到网络上运行客户端的所有机器。1.)a.)客户端可以向服务器发送消息以转发给所有其他客户端b.)客户端监听来自其他发件人的消息(通过服务器)并显示消息。2.)a.)服务器可以向所有客户端发送消息b.)服务器将来自客户端的任何消息转发给所有其他客户端谢谢你的建议注意:我不是在编写即时消息或聊天程序。这只是一个用户可以向其他用户发送警报/消息的系统——他们不能互相回复!没有商业、共享软件等链接-请!我想听

multithreading - Delphi - TDictionary 线程安全吗

我的想法是使用TDictionary来管理IdTCPServer上的客户端连接。这是一个简单的示例代码(未测试),用于理解目的:varDic:TDictionary;procedureTfrmMain.FormCreate(Sender:TObject);beginDic:=TDictionary.Create;end;procedureTfrmMain.FormDestroy(Sender:TObject);beginDic.Free;end;procedureTfrmMain.TCPServerConnect(AContext:TIdContext);varHostname:str

delphi - 通过 DataSnap 的 TCP/IP 连接

我使用DataSnap(VCL应用程序)在DelphiXE中编写了一个多层应用程序套件。这将在我公司内部使用,主要是为了取代过时的传真通信。一切正常,但我遇到了一个不愉快的情况:服务器机器在路由器后面,所以它有一个内部网络IP。我将(在路由器中)端口211(DataSnap默认值)上的所有传入连接转发到服务器的内部IP,并且大约十分之八的所有客户端都可以毫无问题地连接到服务器。问题是剩下的2次我遇到各种连接错误(主要是连接超时)。当它这样做时,我必须关闭并重新打开服务器应用程序或(某些)客户端,然后它才能工作。现在我还处于设计阶段,所以这只是一个麻烦,但当我发布它时,我不想告诉每个人永