使用Winsock 7 C ++从服务器向客户端发送函数调用的最有效方法

时间:2013-04-18 18:38:46

标签: c++ winsock2

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

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

只是寻求一些帮助来实现这一目标。

由于

1 个答案:

答案 0 :(得分:1)

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

您可以做的是发送一条消息,客户将对其进行操作并调用所需的功能。

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

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