有人知道用Delphi编写的TCP套接字代理应用程序的示例吗?我正在构建一个小型代理应用程序,它需要监听给定TCP端口上的套接字连接,读取通过连接发送的XML数据包,通过TCP将请求提供给从可用后端服务器池中选择的服务器,并交付返回原始TCP连接的结果响应。我非常熟悉TCP和套接字级编程,但更愿意找到示例代码作为起点。如果有可用的东西,那将节省大量时间和精力,因为我不需要重新发明轮子。我记得在2003/2004年看到一个用Delphi编写的小型TCP代理,但似乎已经失去了链接的踪迹。 最佳答案 您是否正在寻找socks代理实现?如果
除了捕获netstat调用之外,是否有更优雅的方法来检查TCP端口是否可用于Delphi? 最佳答案 我想您可以使用Indy的组件来做到这一点。例如TIdHTTPServer如果端口在打开时正在使用,则会引发异常。所以基本上你可以创建这样的组件,将它绑定(bind)到localhost:如果引发异常(捕获并检查),则端口可能正在使用中,否则它是空闲的。我想其他indy组件可以判断端口是否打开,但我现在不能查看。这只是给你一个方法。 关于delphi-如何检查TCP端口是否可用Delphi
我正在开发一个使用VLC媒体播放器插件通过RTSP流式传输视频/音频的项目。我想提供一个选项来扫描RTSP摄像机的网络。我确信这将包括查询所有网络设备的列表,并测试端口554。所有这些我都可以处理。但是,一旦我做到这一点,我该如何通过端口554测试设备以确保它是有效的RTSP相机?我假设Winsock中应该有一些东西可以做到这一点,但是我应该如何测试套接字连接并确保它是我可以连接到的有效RTSP流?无论使用什么方法,我都不必尝试通过RTSP连接到每个使用任何类型的身份验证的方法,我正在寻找一种较低级别的方法来确定端口554是否实际上提供了RTSP流。 最佳答
我的服务器应用程序使用TIdTCPServer,几个客户端应用程序使用TIdTCPClients连接到服务器(所有计算机都在同一个局域网中)。一些客户端只需要每隔几分钟与服务器联系一次,其他客户端每秒一次,其中一个大约每秒执行20次。如果我保持客户端和服务器之间的连接打开,我将保存重新连接,但必须检查连接是否丢失。如果我在每次传输后关闭连接,则每次都必须重新连接,但无需检查连接是否仍然存在。执行此操作的最佳方法是什么?一般情况下,我应该以哪种数据传输频率保持连接打开?这两种情况的其他优点/缺点是什么? 最佳答案 我建议将两者混合使用
我已经有大约18个月没有使用裸机TCP/IP了,所以我想知道当前的技术水平如何。我正在寻找积极和消极的方面,同时开发服务器和客户端软件。我将做一个需要坚如磐石的TCP/IP层的项目,所以对我来说这是一个重要方面:)为了使其成为一个社区维基,我正在寻找更广泛的答案,而不仅仅是“坚如磐石”。因此,例如有关特征宽度的信息也很受欢迎。我将使用在答案中找到的相关方面更新问题,以获得对这些库具有平衡概述的wiki条目。例如,根据我过去使用Indy的经验,请参阅下面的答案我对Indy中的异常处理和防卡住很矛盾,虽然习惯了,但还是觉得有些不自然。现在我在Delphi2007(非Unicode)和XE(
我需要使用一些java类中包含的逻辑。我找到了JNI,但该项目最近似乎没有更新。有没有办法在Delphinative应用程序中使用它?我使用Delphi2009。 最佳答案 比JNI更新的解决方案是JNA,它还支持来自(Delphi)DLL的回调。我发现它易于使用。 关于java-使用Delphi中的java类,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2997495/
我有一个用以下Delphi声明编写的文件......TypeTfulldata=Recorddpoints,dloops:integer;dtime,bT,sT,hI,LI:real;tm:real;data:array[1..armax]OfReal;End;...Var:fh:FileOfTfulldata;如果可能的话,我想使用Python分析文件中的数据(大小为许多MB)-是否有一种简单的方法来读取数据并将数据转换为类似于Delphi记录形式的Python对象?有谁知道图书馆可能会这样做吗?这是在Delphi7上编译的,具有以下可能(或可能不)相关的选项,记录字段对齐:8奔腾安
我正在尝试从似乎是在Delphi中创建的DLL中调用函数。DLL支持的一些函数的示例是:functionoziDeleteWpByName(varname:pansichar):integer;stdcall我为访问上述功能而编写的Python代码无法正常工作。fromctypesimport*libc=cdll.OziAPIname='test'pi=pointer(name)delname=libc.oziDeleteWpByNamedelname(name)看来我向函数传递了错误的数据类型。关于如何正确执行此操作的任何想法?谢谢它成功了。现在请帮助这个功能:函数oziGetOzi
如何使用带有html内容的DelphiIdSMTP组件发送电子邮件? 最佳答案 最近不得不使用IndyIdSmtp组件,很遗憾这个问题没有好的答案。我重写了我们的辅助函数以使用Indy发送电子邮件(包括HTML和纯文本)示例用法SendHtmlEmailIndy('smtp.stackoverflow.com',//theSMTPserveraddress'SpammyMcSpamerson','spams@example.com',//Fromname,frome-mailaddress'joe@foo.net,jane@bar.
使用HTTPapp.HTMLEncode(string):String时,我的数据似乎已损坏;HTMLEncode('Jo&hnD这是不正确的,并且正在破坏我的数据。有没有人对VCL组件有更好的建议?除了花时间编码所有案例之外http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references更新在深入了解HTML之后,我发现无需对链接中引用的其他字符进行编码。你只需要知道四个HTML保留字符是&,,"VCLHTTPApp.HTMLEncode()函数的问题是因为缓冲区大小和默认Unicode字符串类