idTcpClient 被动接收服务端传递小的做法
在用 indy 写服务器程序,对socket 编程不熟悉呀,伤不起,简单的问题都得想大头
比如想实现消息服务,客户端可以相互之间发送消息(Socket打洞等做法不想),我的想法是,客户端A要发消息给B,把消息发给服务器,服务器进行中转再发给B,这样就存在 B需要被动接收服务器发送过来的消息,
第一种方法:客户端用一个线程不停 ReadLn。对这种方法,我的疑惑是如何区分服务器发送过来的不同类型的消息呀?
第二种方法:是在客户端再创建一个 server,这种方法我觉得相当于每个客户端都是服务器,将来要设端口映射和防火墙得死人,不科学。
昨天晚上我又想了一个方法,由客户端定时发送一个固定消息给服务器,相当于心跳包,在服务器端存储一个发送给各个客户端的数据队列,服务器收到客户端这个心跳消息时,就检查队列,如果有给这个客户端的消息就将其发送过去。
希望各位大侠帮我解释解释这种事情开发的方法,对socket 编程不太熟悉