Apakah ais di bawah linux

WBOY
Lepaskan: 2022-03-25 09:31:27
asal
2900 orang telah melayarinya

ice di bawah Linux ialah singkatan daripada "Internet Communications Engine", yang bermaksud enjin komunikasi Internet Ia adalah perisian tengah berorientasikan objek boleh memfokuskan pada pembangunan logik aplikasi dan digunakan untuk mengendalikan semua rangkaian asas Pengaturcaraan antara muka membolehkan anda membina aplikasi yang diedarkan dengan usaha yang minimum.

Apakah ais di bawah linux

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Apa itu ais di bawah Linux

ICE ialah produk protokol komunikasi sumber terbuka ZEROC Nama penuhnya ialah: Enjin Komunikasi Internet, yang diterjemahkan kepada Bahasa Cina sebagai Enjin Komunikasi Internet dan merupakan objek-. perisian tengah berorientasikan yang membolehkan kami membina aplikasi teragih dengan usaha yang minimum.

ICE membolehkan kami menumpukan pada pembangunan logik aplikasi, yang mengendalikan semua pengaturcaraan antara muka rangkaian yang mendasari, supaya kami tidak perlu mempertimbangkan butiran sedemikian: membuka sambungan rangkaian, bersiri dan penyahsirilan penghantaran data rangkaian , bilangan percubaan sambungan yang gagal, dsb.

Contoh proses pemasangan ais di bawah Linux:

Muat turun sumber pemasangan

cd /etc/yum.repos.d
sudo wget https://zeroc.com/download/Ice/3.7/el7/zeroc-ice3.7.repo
Salin selepas log masuk

Perpustakaan ais diperlukan

  • bzip2 1.0

  • ekspatriat 2.1 atau lebih baru

  • LMDB 0.9 (LMDB tidak diperlukan dengan pemetaan C 11)

  • mcpp 2.7.2 dengan tampalan

  • OpenSSL 1.0 0 membuat laporan ralat dan kemudian memasangnya)

Muat turun kod sumber Ice ice-3.7.3.tar.gz, nyahzip

sudo yum install lmdb-devel mcpp-devel
Salin selepas log masuk

Kompil (Lalai C 98, anda boleh menetapkan CXXFLAGS untuk menukar kepada c 11)

cd /home/user/
tar -zxf ice-3.7.3.tar.gz
cd ice-3.7.3/cpp
Salin selepas log masuk
src/Ice/SHA1.cpp:14:31: Ralat maut: openssl/sha. h: Tiada fail atau direktori sedemikian

src/Ice/ConnectionI.cpp:27:21: Ralat maut: bzlib.h: Tiada fail atau direktori sedemikian

sudo make -j4
sudo make CXXFLAGS=-std=c++11 -j4
Salin selepas log masuk

src /IceXML/Parser.cpp:7: 19: Ralat maut: expat.h: Tiada fail atau direktori sedemikian

sudo yum install openssl-devel
Salin selepas log masuk

Pemasangan
sudo yum install bzip2-devel
Salin selepas log masuk
(lalai dipasang dalam /opt/Ice-3.7. 3)

sudo yum install expat-devel
Salin selepas log masuk

Ujian

1) Tulis fail konfigurasi kepingan ais
sudo make install
Salin selepas log masuk

2) Susun fail definisi Slice ( jana Printer.h dan Printer.cpp) tidak ditemui Pergi ke slice2cpp dan konfigurasikan sendiri persekitaran berjalan dalam /opt/Ice-3.7.3/bin

3) Tulis pelayan dan namakannya Pelayan .cpp

module Demo {
    interface Printer {
        void printString(string s);
    };
};
Salin selepas log masuk

4) Susun pelayan

slice2cpp Printer.ice
Salin selepas log masuk

5) Tulis klien dan namakannya Client.cpp

#include <Ice/Ice.h>
#include <Printer.h>
 
using namespace std;
using namespace Demo;
 
class PrinterI : public Printer {
    public:
        virtual void printString(const string& s, const Ice::Current&);
};
 
void 
PrinterI::printString(const string& s, const Ice::Current&)
{
    cout << s << endl;
}
 
int main(int argc, char* argv[])
{
    int status = 0;
    Ice::CommunicatorPtr ic;
    try {
        ic = Ice::initialize(argc, argv);
        Ice::ObjectAdapterPtr adapter =
            ic->createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000");
        Ice::ObjectPtr object = new PrinterI;
        adapter->add(object, ic->stringToIdentity("SimplePrinter"));
        adapter->activate();
        ic->waitForShutdown();
    } catch (const Ice::Exception& e) {
        cerr << e << endl;
        status = 1;
    } catch (const char* msg) {
        cerr << msg << endl;
        status = 1;
    }
    if (ic) {
        try {
            ic->destroy();
        } catch (const Ice::Exception& e) {
            cerr << e << endl;
            status = 1;
        }
    }
    return status;
}
Salin selepas log masuk

6) Susun klien

c++ -I. -I/opt/Ice-3.7.3/include -c Printer.cpp Server.cpp
c++ -o server Printer.o Server.o -L/opt/Ice-3.7.3/lib64 -lIce -lpthread
Salin selepas log masuk

7) Jalankan Pelayan , dan kemudian jalankan Klien, jika anda melihat keluaran Hello World! kemudian berjaya.

#include <Ice/Ice.h>
#include <Printer.h>
 
using namespace std;
using namespace Demo;
 
int main(int argc, char* argv[])
{
    int status = 0;
    Ice::CommunicatorPtr ic;
    try {
        ic = Ice::initialize(argc, argv);
        Ice::ObjectPrx base = ic->stringToProxy("SimplePrinter:default -p 10000");
        PrinterPrx printer = PrinterPrx::checkedCast(base);
        if (!printer)
            throw "Invalid proxy";
 
        printer->printString("Hello World!");
    } catch (const Ice::Exception& ex) {
        cerr << ex << endl;
        status = 1;
    } catch (const char* msg) {
        cerr << msg << endl;
        status = 1;
    }
    if (ic)
        ic->destroy();
    return status;
}
Salin selepas log masuk
Cadangan berkaitan: "

Tutorial Video Linux

"
c++ -I. -I/opt/Ice-3.7.3/include -c Printer.cpp Client.cpp
c++ -o client Printer.o Client.o -L/opt/Ice-3.7.3/lib64 -lIce -lpthread
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah ais di bawah linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan