C ++中的网络事件处理

时间:2016-08-01 17:14:10

标签: c++ networking event-handling event-driven

我目前用C ++编写了一个服务器/客户端实现,其中两个客户端连接到服务器。我期待以前的经验(我是C ++的新手),每个客户端(和服务器)都有一个事件处理程序,当客户端想要向服务器或客户端发送消息时,事件就会进入已从服务器收到消息。您可以将其视为聊天服务器;来自客户端的“传出”事件可能是由用户在控制台中键入内容触发的,并且“传入”事件可以通过从服务器接收数据来触发。

在C ++中是否有标准的编码方式?理想情况下,我希望为每种可能的事件类型注册回调函数,并且注册的回调函数在收到每个事件时作为上下文传递给事件处理程序,因此我可以在其特定的处理函数中处理每个事件。当然,一旦事件处理完毕,我希望我的程序回归到事件循环中。

有什么想法吗?我对事件驱动的编程风格非常满意,所以如果可能的话,我宁愿保持这种方式而不是学习全新的范例。

1 个答案:

答案 0 :(得分:0)

C ++没有内置的事件处理程序系统(不像C#和委托),但是有很多库可以做到这一点。 libsigc++ is one of them

因此,您用于网络的任何库也必须提供事件处理代码,无论是他们自己还是使用其他库。如果您正在推出自己的网络代码,我真的认为创建自己的事件处理代码并不是那么困难,但我可能会疯了。