Google terkenal dengan jumlah konyol C ++ yang telah mereka kodekan selama bertahun-tahun. Perbaiki saya jika saya salah, tetapi sebagian besar mesin pencari inti Google ditulis dalam C ++, bukan? Bagaimana cara mengambil program yang ditulis dalam C ++ dan menghubungkannya dengan situs web?
Catatan: Saya tidak mencari bagaimana Google khususnya melakukan ini, hanya bagaimana hal itu dapat dilakukan secara umum.
web-development
c++
web-applications
Ilmu Maniak
sumber
sumber
Jawaban:
Perangkat lunak web apa pun hanya akan mengirim dan menerima pesan melalui soket, itu saja. Anda dapat menggunakan bahasa apa pun untuk melakukan ini, itu tidak spesifik untuk bahasa.
Namun, Anda sebaiknya tidak menemukan kembali roda untuk jenis pekerjaan ini sehingga sebagian besar bahasa yang digunakan untuk melakukan aplikasi web memiliki kerangka kerja yang melakukan komunikasi dasar untuk Anda, untuk memungkinkan Anda berkonsentrasi pada kekhususan proyek Anda. Ruby memiliki ROR, Python memiliki Django dan lainnya, Java sebagai ... dll.
C ++ secara historis tidak memiliki kerangka kerja yang serupa sampai saat ini:
Sekarang, "jumlah konyol C ++" yang dibangun Google diperlukan karena Anda harus memiliki modul berkinerja sangat tinggi untuk menyelesaikan jenis masalah yang dipecahkan Google. Selamat mencoba melakukan hal yang sama tanpa modul yang ditulis dalam bahasa yang berfokus pada kinerja. Saya sarankan membaca wiki CPPCMS tentang hal ini untuk lebih memahami. Untuk fakta sejarah, Amazon, Google, Facebook (lihat Hip Hop dan wawancara Alexandrescu baru-baru ini) dan beberapa layanan web yang sangat besar lainnya memiliki inti dalam C ++, untuk alasan komputasi yang jelas yang lebih penting daripada waktu yang hilang pada produktivitas programmer.
CPPCMS dan cpp-netlib menjadi open source, Anda dapat mempelajarinya jika Anda ingin tahu cara membuat aplikasi berfungsi sebagai layanan web menggunakan C ++. Yang mengatakan, aplikasi apa pun yang dapat mendengarkan port dan mengirim data ke port berpotensi melakukan ini, ini semua tentang protocole (TCP / IP, HTTP, dll.) , Bukan kode.
sumber
Seperti bahasa lainnya ....
Buka soket TCP, kirim dan terima pesan http. Pisahkan mereka dan lakukan hal-hal berdasarkan konten.
Lihatlah Qt untuk contoh pada kerangka c ++ yang mendukung beberapa fungsi dasar http.
Ada juga kerangka kerja khusus untuk C ++. Tidak banyak atau banyak digunakan, AFAIK. Mungkin karena jika Anda melakukan web melalui C ++, Anda tetap melakukan sesuatu yang sangat khusus dan ingin kontrol penuh atas semuanya.
sumber
Dari perspektif klien, jika Anda memiliki program C / C ++ dan Anda ingin menggunakannya untuk berbicara dengan internet Anda akan menggunakan libcurl. Ini cukup banyak perpustakaan standar (dan komprehensif) untuk terhubung ke url http untuk mengirim dan menerima data. Ada beberapa perpustakaan lain - Microsoft memiliki beberapa, ada beberapa yang open source.
Nah, itu untuk URL lama biasa melalui http (atau SMTP, atau FTP, atau Gopher, atau .. libcurl sangat komprehensif!) Jika Anda mencoba untuk menggunakan layanan web melalui SOAP, maka Anda dapat menggunakan salah satu dari banyak perpustakaan lain seperti gsoap
Untuk sisi server, Anda memerlukan server web atau kerangka kerja yang mengekspos kode C ++ Anda. Sekali lagi ada banyak cara untuk melakukan ini - program web paling awal adalah semua C / C ++, ditulis sebagai program CGI di mana server web menyebut aplikasi Anda menggunakan bentuk IPC. Sejak itu, kami memiliki Wt, Qt, cppCMS, ffead, dan semua yang dari Microsoft (ISAPI, ATLServer, dan sekarang Casablanca).
Saya pikir alasan no-onne benar-benar menggunakan C ++ untuk program web mereka adalah karena bahasa lain sudah dipaket dengan pustaka ini. C ++ (seperti biasa) Anda harus pergi mencari perpustakaan untuk digunakan, sedangkan PHP baru saja siap untuk pergi ke web.
sumber
Arsitektur client-server memungkinkan ini terjadi.
C ++ dapat digunakan untuk mengembangkan server.
Di sisi klien, teknologi web dapat digunakan untuk berkomunikasi dengan server.
sumber