假设我正在构建一个接受客户端连接的程序,将每个新客户端放入列表,将列表打印到控制台,并在有新客户端连接时进行更新。
同时(因此,当accept()阻止程序流;客户端与套接字连接时),我想处理用户输入。通过在控制台上键入数字,用户将始终能够从列表中选择一个特定的客户端进行通信(假设每个客户端对应一个唯一的编号(id))。
如何用C实现呢?我应该使用共享内存或套接字来使用进程并交换信息,还是应该使用线程?为什么呢?
尽管我的问题的标题含糊不清,但该问题并非重复,因为我正在要求一种用于此特定示例的方法。
答案 0 :(得分:1)
如何用C实现呢?我应该使用共享内存或套接字来使用进程并交换信息,还是应该使用线程?为什么呢?
首选线程,因为它们更易于使用。对线程之间共享的数据使用互斥锁,根据您的操作系统使用pthread或winthread。这将使您尽快地工作原型。
除了您可以使用的原型之外,其他任何事情都无法用您提供的信息真正评估。多少个客户端,什么操作系统,RAM或磁盘中的客户端列表(可能取决于客户端大小),等等?大多数事情都需要权衡。