首先开始在Delphi7中启动我自己的服务。遵循文档并使服务生成一个自定义线程,该线程会发出蜂鸣声并记录日志。只有它没有。最后一次尝试是在OnExecute事件过程中放置相同的蜂鸣声和日志代码,但是当我启动该服务时,我收到一个Windows对话框,提示它已启动然后再次停止。在thiscode中应该有一些明显的东西被我忽略了.你能看看吗?我还将接受指向简单、有效、可下载的服务示例项目的链接……这样我就可以得到每10秒左右调用一次的东西,我将从那里获取它。 最佳答案 接下来是一个基本的服务应用程序。请注意,如果您想使用Service
几周前我开始使用IndyTCPServer和TCPClient,现在,经过大量研究和SOF专家(特别是Lebeau先生)的帮助,我可以安全地管理客户端连接并向特定客户端发送字符串消息。这是一段代码:typeTClient=class(TObject)privateFHost:string;publicFQMsg:TIdThreadSafeStringList;//MessageQueueconstructorCreate(constHost:string);destructorDestroy;override;end;procedureTfrmMain.TCPServerExecute
我知道我希望从客户端获得多少字节(在此代码中为100)。如果客户端不给我100,我根本不需要这个数据包,因为它已损坏。我遇到客户端提供少于100个字节并断开连接的情况。在这种情况下,我正在捕获异常并且一切都会好起来的,除了在这个异常之后我的ServerTCPExecute被不连续地调用了很多次。没有任何其他客户端连接。为什么会这样?如果我执行TIdYarnOfThread(AContext.Yarn).Thread.Terminate;一切正常。但我不确定这是好的解决方案。procedureForm1.ServerTCPExecute(AContext:TIdContext);begi
一个非常简单的问题,我似乎无法找到明确的答案。我有一个经典的TCPIndy服务器。我以block的形式发送数据。每个数据包以1个或多个block发送。当它到达时,每个数据包都会触发一次或多次OnExecute。在任何给定时间,不止一个客户端可以发送数据。我如何知道我在OnExecute中接收哪个客户端/数据包的数据?我知道这可能是一个微不足道的问题,但我想得到一个明确的答案。 最佳答案 如果你可以设计协议(protocol),它可以这样做:客户端以包含总大小和block大小的初始命令开始服务器OnExecute创建一个临时输出文件流