GNU/Linux >> Belajar Linux >  >> Linux

Model yang digerakkan oleh peristiwa dalam C dengan Soket

"apa filosofi di balik model ini"

Didorong peristiwa berarti tidak ada "pemantauan", tetapi peristiwa itu sendiri yang memulai tindakan.

Biasanya ini dipicu oleh interupsi, yang merupakan sinyal ke sistem dari perangkat eksternal, atau (dalam kasus interupsi software) proses asinkron.

https://en.wikipedia.org/wiki/Interrupt

Bacaan lebih lanjut sepertinya ada di sini:

https://docs.Oracle.com/cd/E19455-01/806-1017/6jab5di2m/index.html#sockets-40- "Soket I/O yang Digerakkan Interupsi"

Juga http://cs.baylor.edu/~donahoo/practical/CSockets/textcode.html memiliki beberapa contoh Interrupt-Driven Sockets, serta contoh pemrograman soket lainnya.


Anda pasti harus membaca yang berikut ini:http://www.kegel.com/c10k.html. Laman tersebut adalah ikhtisar sempurna tentang teknik berbasis peristiwa dan asinkron.

Namun, jawaban cepat &kotor :digerakkan oleh peristiwa bukan non-pemblokiran, atau asinkron.

Digerakkan oleh peristiwa berarti, bahwa proses akan memantau deskriptor (dan soket) file-nya, dan hanya bertindak ketika beberapa peristiwa terjadi pada beberapa deskriptor (peristiwa adalah:data diterima, kesalahan, menjadi dapat ditulisi, ...).

Soket BSD memiliki fungsi "pilih ()". Saat dipanggil, OS akan memantau deskriptor, dan kembali ke proses segera setelah beberapa peristiwa di salah satu deskriptor terjadi.

Namun, situs web di atas memiliki deskripsi yang jauh lebih baik (dan detail tentang berbagai API).


Linux
  1. Mengapa Substitusi Proses Bash Tidak Bekerja Dengan Beberapa Perintah?

  2. Folder Aneh Di /tmp Dengan Nama Ssh-*?

  3. Usb 3.0 Hub Tidak Bekerja Dengan Beberapa Perangkat Di Ubuntu 18.04?

  1. Cara Menginstal AWStats Dengan Beberapa Plugin Di Server Dengan ISPConfig

  2. Cara Mengatur Apache dengan Acara MPM dan PHP-FPM di Ubuntu 20.04

  3. Pelacakan Peristiwa dengan Google Analytics &WordPress

  1. Warna dengan arloji perintah unix?

  2. Hapus BEBERAPA mode tautan yang diiklankan dengan ethtool

  3. bagaimana cara menonaktifkan login SSH dengan kata sandi untuk beberapa pengguna?