ServerSocket可不可以主动发消息

ServerSocket能否主动发消息
ServerSocket ,ClientSocket
一台PC连接多个终端,但是前提是PC需要发消息到终端。
本是想PC作为 服务端 ,终端作为客户端,PC发送消息过去,终端会自动返回数据。
目前看到的资料均是 必须 由 客户端先发送消息到 服务端,服务端然后保存相关信息,然后再往客户端发送数据.

现在要求的是 客户端不首先发起通信,服务端根据数据库中保存的IP地址以及PORT 给每个客户端 轮询发送数据,客户端 返回数据。这个如何实现?
(也想过PC作为客户端,终端作为服务端,但是这样PC上不能够很好的反映当前所有终端的连接状况)

------解决方案--------------------
socket连接建立后服务器端即可发送数据,不需要客户端首先发送数据。
------解决方案--------------------
只要连接建立成功,服务器就可以发送数据.这有很多winsock源码,你可以参考:
http://download.csdn.net/detail/geoff08zhang/4571358
------解决方案--------------------
也就是你的PC做客户端用,主动向你的终端发起连接及请求,在你的PC端维护你所要管理的终端列表逐个发起连接及响应终端处理就可以了。
------解决方案--------------------
你可以知道每个客户端的IP,但是端口这个不是确定的,除非你强制要求每个客户端必须用某个端口来连接服务器端

客户端不一定非要向服务器端发消息,但是必须要连接上服务器端才行
------解决方案--------------------
ServerSocket、ClientSocket是有连接的,即双方是一直保存持连接的
所以在客户端连接时(ServerSocket的onClientConnect事件),服务端用一个TList把客户端的Socket保存下来

服务端向客户端发消息时就用此Socket,Socket中已经有IP和PORT了
所以数据库中保存的IP地址以及PORT,其实是用不到的