Rumah > Artikel > Operasi dan penyelenggaraan > Apakah ais di bawah linux
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.
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
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/cppsrc/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-develPemasangan
sudo yum install bzip2-devel(lalai dipasang dalam /opt/Ice-3.7. 3)
sudo yum install expat-devel
Ujian
1) Tulis fail konfigurasi kepingan aissudo 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!