【问题标题】:Multi user application through multi terminals多终端多用户应用
【发布时间】:2013-05-17 19:00:35
【问题描述】:

夜人,

我有一个我认为很简单的问题,但不知道如何解决它:

我想创建一个多线程多用户应用程序,将通过多个终端在同一台计算机上启动,例如游戏。

应用程序应该通过终端来执行

./foo

例如,在 3 之后,终端调用了这个,那么游戏应该开始了:

1号航站楼:

./foo
Waiting for other users...

2号航站楼:

./foo
Waiting for other users...

3 号航站楼:

./foo
Starting...

每次我从终端调用 ./foo 时,我只是看不到这样做的机制,它会创建另一个进程。我怎样才能让它“计算”它被调用的次数而不是创建另一个进程?如果有另一种方法(可能有),是哪一种?

【问题讨论】:

    标签: c multithreading pthreads


    【解决方案1】:

    没有,每次重新启动它都会创建一个新进程,但是你可以让程序创建一个unix套接字,然后所有下一个将连接到同一个套接字并相互通信您定义的某种方式。

    【讨论】:

    • 对。或者传递一些参数以服务器模式启动程序,然后其中一个玩家将独立于客户端启动服务器。
    【解决方案2】:

    这是 InterProcessCommunication 的指南:http://beej.us/guide/bgipc/

    有多种技术可以做到这一点:

    • 管道
    • 消息队列
    • 共享内存
    • 套接字

    有关每种技术的示例,请参阅指南。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多