草庐IT

delphi-2009

全部标签

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次我遇到各种连接错误(主要是连接超时)。当它这样做时,我必须关闭并重新打开服务器应用程序或(某些)客户端,然后它才能工作。现在我还处于设计阶段,所以这只是一个麻烦,但当我发布它时,我不想告诉每个人永

delphi - idHttpServer(服务器)和 wininet(客户端)上的 TCP Keep Alive

我有一个使用idHttpServer开发的网络服务器应用程序。当客户端连接我的网络服务器时,由于某种未知原因断开连接(不是正常断开连接),我的网络服务器没有收到通知。我知道这是正常行为,但我需要知道客户端何时死亡。有几种方法可以做到这一点。我知道2个好方法:1-实现心跳机制。客户端套接字通知服务器它仍然存在(需要一些工作和一些代码才能使其工作)2-TCPKeepAlive.这是我最喜欢的方式,因为它不需要太多的代码和工作。但我对此有一些疑问。这是否可以与idHttpServer(用于服务器)和wininet函数(对于客户端)?这真的像预期的那样有效吗?我的意思是,当客户端一直死机时,服

delphi - Indy TCPClient 和 InputBuffer 中的流氓字节

我正在使用以下几行代码通过IP写入和读取外部调制解调器/路由器(又名设备)。TCPClient.IOHandler.Write(MsgStr);TCPClient.IOHandler.InputBuffer.Clear;TCPClient.IOHandler.ReadBytes(Buffer,10,True);MsgStr是一种字符串类型,其中包含我发送到我的设备的文本。缓冲区被声明为TIdBytes。我可以确认IOHandler.InputBufferIsEmpty在调用ReadBytes之前立即返回True。我希望收到的前10个字节非常具体,因此从我的角度来看,我只对发送字符串后收

用于TCP连接的Delphi透明代理

有人知道用Delphi编写的TCP套接字代理应用程序的示例吗?我正在构建一个小型代理应用程序,它需要监听给定TCP端口上的套接字连接,读取通过连接发送的XML数据包,通过TCP将请求提供给从可用后端服务器池中选择的服务器,并交付返回原始TCP连接的结果响应。我非常熟悉TCP和套接字级编程,但更愿意找到示例代码作为起点。如果有可用的东西,那将节省大量时间和精力,因为我不需要重新发明轮子。我记得在2003/2004年看到一个用Delphi编写的小型TCP代理,但似乎已经失去了链接的踪迹。 最佳答案 您是否正在寻找socks代理实现?如果

delphi - 如何检查 TCP 端口是否可用 Delphi?

除了捕获netstat调用之外,是否有更优雅的方法来检查TCP端口是否可用于Delphi? 最佳答案 我想您可以使用Indy的组件来做到这一点。例如TIdHTTPServer如果端口在打开时正在使用,则会引发异常。所以基本上你可以创建这样的组件,将它绑定(bind)到localhost:如果引发异常(捕获并检查),则端口可能正在使用中,否则它是空闲的。我想其他indy组件可以判断端口是否打开,但我现在不能查看。这只是给你一个方法。 关于delphi-如何检查TCP端口是否可用Delphi

delphi - 如何测试网络设备的有效 RTSP 流?

我正在开发一个使用VLC媒体播放器插件通过RTSP流式传输视频/音频的项目。我想提供一个选项来扫描RTSP摄像机的网络。我确信这将包括查询所有网络设备的列表,并测试端口554。所有这些我都可以处理。但是,一旦我做到这一点,我该如何通过端口554测试设备以确保它是有效的RTSP相机?我假设Winsock中应该有一些东西可以做到这一点,但是我应该如何测试套接字连接并确保它是我可以连接到的有效RTSP流?无论使用什么方法,我都不必尝试通过RTSP连接到每个使用任何类型的身份验证的方法,我正在寻找一种较低级别的方法来确定端口554是否实际上提供了RTSP流。 最佳答

delphi - 最佳实践 : Keep TCP/IP connection open or close it after each transfer?

我的服务器应用程序使用TIdTCPServer,几个客户端应用程序使用TIdTCPClients连接到服务器(所有计算机都在同一个局域网中)。一些客户端只需要每隔几分钟与服务器联系一次,其他客户端每秒一次,其中一个大约每秒执行20次。如果我保持客户端和服务器之间的连接打开,我将保存重新连接,但必须检查连接是否丢失。如果我在每次传输后关闭连接,则每次都必须重新连接,但无需检查连接是否仍然存在。执行此操作的最佳方法是什么?一般情况下,我应该以哪种数据传输频率保持连接打开?这两种情况的其他优点/缺点是什么? 最佳答案 我建议将两者混合使用

delphi - Wiki:Delphi 第 3 方 TCP/IP 组件库的最新技术水平

我已经有大约18个月没有使用裸机TCP/IP了,所以我想知道当前的技术水平如何。我正在寻找积极和消极的方面,同时开发服务器和客户端软件。我将做一个需要坚如磐石的TCP/IP层的项目,所以对我来说这是一个重要方面:)为了使其成为一个社区维基,我正在寻找更广泛的答案,而不仅仅是“坚如磐石”。因此,例如有关特征宽度的信息也很受欢迎。我将使用在答案中找到的相关方面更新问题,以获得对这些库具有平衡概述的wiki条目。例如,根据我过去使用Indy的经验,请参阅下面的答案我对Indy中的异常处理和防卡住很矛盾,虽然习惯了,但还是觉得有些不自然。现在我在Delphi2007(非Unicode)和XE(

java - (2009) - 反混淆 Java 代码的工具

有没有java混淆码去混淆工具?代码是从已编译的类中提取的,但它们是混淆的且不可读的。 最佳答案 第一步是了解使用哪种工具对其进行了混淆处理。也许已经有针对特定混淆器的“反混淆器”。另一方面,您也可以只运行一个IDE并使用它的重构能力。将类、方法和变量名称重命名为敏感的名称。使用您的人类逻辑思维能力来确定代码实际代表什么,并敏感地命名它们。这幅画会缓慢但肯定会变大。祝你好运。 关于java-(2009)-反混淆Java代码的工具,我们在StackOverflow上找到一个类似的问题: