Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah ais di bawah linux

Apakah ais di bawah linux

WBOY
WBOYasal
2022-03-25 09:24:432899semak imbas

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

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

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
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

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

sudo yum install openssl-devel

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

sudo yum install expat-devel

Ujian

1) Tulis fail konfigurasi kepingan ais
sudo make install

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);
    };
};

4) Susun pelayan

slice2cpp Printer.ice

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;
}

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

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;
}
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

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

Kenyataan:
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