为了学校项目,我正在开发一个本地即时聊天系统。我需要编写聊天服务器和客户端代码,使它们能够在同一台计算机的不同终端窗口之间以FIFOs和线程的形式发送消息。
FIFOs部分没有问题,线程部分让我有些头疼。服务器有一个线程用于从所有客户端使用的FIFO接收命令,并且每个连接的客户端都有另一个线程。
对于每个已连接的客户端,我需要了解某些信息。最初,我使用全局变量,但只适用于连接了一个客户端这样的情况,这与聊天的目的相背离。
因此,我希望每个客户端都有以下数据:
-昵称
-姓名
-电子邮件地址
-等等...
但我不知道如何实现这一点。我可以创建一个client_data [MAX_NUMBER_OF_THREADS]数组,其中client_data是具有所需访问权限的结构体,但这要求在服务器和客户端之间的每次通信中询问数组client_data中的客户端ID,这似乎不太实用。
我也可以在创建线程后立即实例化client_data,但它只在那个块中可用,这也不太实用。
正如您所看到的,我需要一些指导。任何评论、代码或任何相关信息的链接都将受到高度赞赏。
FIFOs部分没有问题,线程部分让我有些头疼。服务器有一个线程用于从所有客户端使用的FIFO接收命令,并且每个连接的客户端都有另一个线程。
对于每个已连接的客户端,我需要了解某些信息。最初,我使用全局变量,但只适用于连接了一个客户端这样的情况,这与聊天的目的相背离。
因此,我希望每个客户端都有以下数据:
-昵称
-姓名
-电子邮件地址
-等等...
但我不知道如何实现这一点。我可以创建一个client_data [MAX_NUMBER_OF_THREADS]数组,其中client_data是具有所需访问权限的结构体,但这要求在服务器和客户端之间的每次通信中询问数组client_data中的客户端ID,这似乎不太实用。
我也可以在创建线程后立即实例化client_data,但它只在那个块中可用,这也不太实用。
正如您所看到的,我需要一些指导。任何评论、代码或任何相关信息的链接都将受到高度赞赏。