1

我使用 C++ 和 Winsock 来创建服务器和客户端应用程序。连接到服务器后,客户端显示动画序列。服务器机器可以处理多个客户端连接并记录连接的客户端总数。

目前,客户端动画序列在客户端连接后立即开始。我想要发生的是,当 2 个客户端连接到服务器时,服务器应该向客户端 1 发送一条消息以调用 Render() 函数(在客户端中),然后稍后再发送一条消息到客户端 2 调用相同的 Render() 函数。

只是寻找一些帮助,以实现这一目标的最佳方式。

谢谢

4

1 回答 1

1

您不能发送函数调用(该词的任何直接含义),因为函数存在于单个进程空间中并且不能(轻松)通过套接字连接发送。

您可以做的是发送一条消息,客户端将采取行动并调用所需的功能。

根据您使用的协议,这可能就像服务器向每个客户端的 TCP 连接发送单个字节(例如,用于渲染的“R”或其他内容)一样简单,并且客户端代码会知道调用 Render()接收该字节。当然,更复杂的协议可能会更精细地编码相同的信息。

在解释型语言(例如 Java 或 Python)中,可以通过套接字连接以 Java .class 文件或 Python 源文本等形式发送实际代码。但这样做几乎总是一个坏主意,因为攻击者可以利用该机制向客户端发送恶意软件并让客户端执行它。

于 2013-04-18T18:49:00.000 回答