我想构建一个可供最多 100 个并发客户端使用的 TCP/IP 服务器,但仍不确定如何开始。
至少我需要服务器:
- 监听客户端,并将它们全部存储在数组或列表中。
- 对于每个客户端,它需要根据其客户端状态接收和发送数据。
- 当有人连接或断开连接时,服务器应更新客户端列表。
- 更喜欢使用 GUI 作为服务来管理它。
任何人都可以帮助如何开始使用它,我查看了 indy 示例,但他们没有帮助,还查找了大多数组件,但仍在搜索。
您需要使用TidTCPServer
里面是多线程的。无需您管理线程。一切都是透明的,因此您为一个客户编写应用程序的方式与为许多客户编写应用程序的方式(几乎)相同。请参阅OnConnect
事件。有一个TidContext
参数里面有一个TThreadList。您可以使用该事件“注册”/将您的客户添加到您的自定义数组/列表中,并且OnDisconnect
删除客户端。
The OnExecute
当服务器收到消息时触发事件。使用其参数来读取发送的消息。
另外,你需要another应用程序将成为您的客户端,使用TidTCPClient
。在此应用程序中,您将设置服务器的地址(请参阅主机属性)以及应与服务器的端口匹配的端口。你应该打电话Connect
(当服务器运行时)并发送您拥有的字符串SendCmd
方法。 (另请参阅IOHandler.WriteLn
如果你想)
还有其他事情,但我认为这足以让您开始。您还可以在 .Delphi.Winsock 论坛中的 Embarcadero 论坛上发帖,Indy 团队成员就在该论坛上。或者您可以直接在 .Delphi.Non-Technical 中询问,那里的人会指导您。
另一种方法是DataSnap这是一个比 Indy 更面向对象的层(不要与 DBX 混淆),它为您提供了 JSON、REST 和其他好处。请参阅小评论here http://wings-of-wind.com/2009/08/19/rad-studio-2010-review-11-datasnap/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)