加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 构建多线程TCP / IP服务器

发布时间:2020-12-15 04:30:48 所属栏目:大数据 来源:网络整理
导读:我想构建一个TCP / IP服务器,最多可以使用100个并发客户端,但仍然不知道如何开始. 至少我需要服务器到这个: 听客户端,并将其存储在数组或列表中. 对于每个客户端,它需要根据客户端状态接收和发送数据. 有人连接或断开连接时,服务器应更新客户端列表. 喜欢与
我想构建一个TCP / IP服务器,最多可以使用100个并发客户端,但仍然不知道如何开始.

至少我需要服务器到这个:

>听客户端,并将其存储在数组或列表中.
>对于每个客户端,它需要根据客户端状态接收和发送数据.
>有人连接或断开连接时,服务器应更新客户端列表.
>喜欢与GUI一起工作来管理它.

任何人都可以帮助我开始,我看着indy的样本,但他们没有帮助,也寻找大部分组件,但仍在搜索.

解决方法

您需要使用内部多线程的TidTCPServer.不需要你来管理线程.一切都是透明的,所以在你为一个客户端编写应用程序的方式中,(几乎)你将会为许多人写这个应用程序.请参阅OnConnect事件.有一个TidContext参数,里面有一个TThreadList.您可以使用该事件将您的客户端注册/添加到您的自定义阵列/列表,并使用OnDisconnect删除客户端.

OnExecute事件在服务器收到消息时被触发.使用其参数来读取发送的消息.

此外,您需要使用TidTCPClient的另一个应用程序,这将是您的客户端.在此应用程序中,您将设置服务器的地址(请参阅主机属性)以及应与服务器端口匹配的端口.您应该调用Connect(服务器运行时)并发送具有SendCmd方法的字符串. (另请参阅IOHandler.WriteLn,如果你想)

还有其他的事情,但我认为这足以让你开始.此外,您可以在Embarcadero的论坛中发布.Delphi.Winsock论坛,Indy团队成员正在浮动.或者你可以直接问.Delphi.Non-Technical,那些家伙会指导你.

另一种方法是DataSnap,它是一个比Indy更为面向对象的层(不要与DBX混淆),它提供了JSON,REST和其他的好东西.看到一个小的评论here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读