0

複数のクライアントからの接続を受け入れるマルチスレッド サーバーを使用して、C++ クライアント/サーバー アプリケーションを作成しています。サーバーとクライアントの両方の複数のインスタンスをコンパイルして実行する bash スクリプトを作成する必要があります。クライアントとサーバーは別のフォルダーにあります。

私はこの方法を試しましたが、サーバーのみを起動するため機能しません:

#!/bin/sh
cd "/home/myhost/ServerSide"
g++ -std=c++11 -pthread server_struct.cpp -o server     
./server

cd "/home/myhost/ClientSide"
g++ -std=c++11 client.cpp -o client1
./client1

cd "/home/myhost/ClientSide"
g++ -std=c++11 client.cpp -o client2
./client2
4

1 に答える 1

1

通常、ビルドプロセスをアプリケーションの実行から分離します。makeさらに、 bash スクリプトではなく、ビルドに使用することをお勧めします。

Makefile (インデントに注意してください!):

CXXFLAGS=-std=c++11

VPATH=ServerSide ClientSide

all: client server

server: server_struct.o
    $(CXX) -o $@ $^ $(LDFLAGS)
client: client.o
    $(CXX) -o $@ $^ $(LDFLAGS)
runall: server client
    xterm -e ./server &
    xterm -e ./client &
    xterm -e ./client &

そして、単に実行しますmake runall

于 2013-09-17T08:22:56.223 に答える