php boleh melaksanakan komunikasi soket Kaedah pelaksanaannya ialah: 1. Buat "socketsocket_create();" pada klien dan minta sambungan ke pelayan "socket_connect();" 2. Buat "socketsocket_create() " pada pelayan ;" dan mengikat nombor IP dan port "socket_bind();";
Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 8.1, komputer DELL G3
Bolehkah php mencapai komunikasi soket ?
soket PHP: Pelaksanaan PHP komunikasi TCP soket yang terperinci dan ringkas
1 Pengenalan latar belakang
Matlamat: Saya berharap untuk menggunakan soket Fungsi pelayan ini adalah untuk menerima sambungan daripada berbilang pelanggan dan melengkapkan komunikasi bersama mereka. Sebagai contoh, klien A dan klien B disambungkan ke pelayan S pada masa yang sama Klien A menghantar mesej ke pelayan S. Pelayan S akan memajukan mesej A kepada B. Begitu juga, mesej B juga boleh dimajukan kepada A melalui S. Dengan cara ini, komunikasi bersama antara klien A dan klien B tercapai. Kali ini kami hanya melaksanakan sambungan dan komunikasi antara klien dan pelayan, dan tidak mempunyai fungsi pemajuan pelayan buat masa ini.
Jam tangan tiga hala TCP boleh memastikan pelayan dan Pelanggan boleh berkomunikasi secara normal. Proses jabat tangan tiga hala: Bagi penjelasan proses ini, anda boleh klik pada pautan di bawah untuk melihatnya.
2.2 IP dan PORT Bahagian perkhidmatan pelanggan perlu mempunyai IP, dan apabila berkomunikasi dengan TCP, ia juga perlu memberikan nombor port.
Pemahaman peribadi: IP ialah alamat, yang boleh difahami sebagai rumah Apabila anda perlu mewujudkan komunikasi, anda mesti tahu di mana rumah itu berada.
Port port, nombor port boleh difahami sebagai pintu di rumah ini. Kita perlu menentukan pintu untuk menghantar mesej masuk atau menerima mesej dari pintu ini.
2.2 Proses komunikasi ringkas antara klien dan pelayan
2.2.1 Beberapa fungsi berkaitan phpPelanggan:
Buat soketsocket_create();
Minta sambungan daripada pelayan
socket_connect();
Hantar mesej ke pelayan /Terima mesej pelayan
socket_wirte(); / socket_read();
Tutup soket
socket_close();Pelayan :
Buat soket
socket_create();
Ikat nombor IP dan port
socket_bind();
Mendengar IP dan nombor port (0.0.0.0 bermaksud mana-mana IP)
socket_listen();
Menyekat dan menunggu perkhidmatan pelanggan Tamatkan sambungan
socket_accept();
Baca mesej/tulis mesej klien kepada klien
socket_wirte();
Tutup soket
soket_tutup();
2.2.2 Proses komunikasi ringkas
Pelayan mencipta soket, mengikat IP dan PORT, dan kemudian memasuki keadaan mendengar untuk menunggu klien memulakan sambungan.
Pelanggan mencipta soket dan menyambung ke IP pelayan dan PORT yang ditentukan.
Pelayan menerima sambungan yang dimulakan oleh klien.
Kedua-dua pihak boleh menghantar data antara satu sama lain
Kedua-dua pihak menutup soket.
Ini adalah proses komunikasi ringkas Bagi penghantaran kitaran atau pengesanan kelainan, ia adalah beberapa butiran.
3 Mula berlatih
3.1 pemasangan PHP dan konfigurasi persekitaran
Pasang PHP . Di sini saya memasang XAMPP secara langsung, dan perisian ini memasang PHP untuk saya sendiri. Jika ini kali pertama anda menggunakan bahasa PHP, anda boleh memasang PHP terus dari Baidu, atau anda boleh memasang XAMPP.
Konfigurasi persekitaran sistem. Semasa menjalankan program, saya menjalankannya melalui cmd, jadi saya perlu mengkonfigurasi pembolehubah persekitaran sistem. Untuk proses konfigurasi, sila rujuk: Pautan: konfigurasi pembolehubah persekitaran PHP .
Semak sama ada arahan php boleh dijalankan. Selepas melengkapkan langkah 1 dan 2, jalankan cmd dan laksanakan arahan php -v Selepas operasi selesai, nombor versi PHP akan dipaparkan.
3.2 Program pelanggan
3.2.1 Program penulisan
Buat yang baharu satu Folder soket, buat dokumen teks baharu di bawah folder ini dan namakan semula client.phpNOTA: Folder saya dicipta pada desktop
Buka client.phpNOTA: Jika anda tidak mempunyai editor php, anda boleh terus membuka client.php dengan Notepad pada masa ini
dan tulis ProsedurNOTA: Saya akan memberikan prosedur terus di sini dan memberi komen Anda boleh memahaminya berdasarkan proses komunikasi 2.2 Jika anda mempunyai sebarang pertanyaan, sila tinggalkan mesej
Selepas atur cara ditulis, anda boleh menyalinnya terus, atau muat turun terus. NOTA: Jika program dijalankan secara langsung, ralat akan dilaporkan Kami perlu menentukan nombor port Sila teruskan ke bahagian seterusnya untuk mengetahui cara menjalankan program.
3.2.2 Pelaksanaan program
Dapatkan program . Melalui bahagian sebelumnya, kami sudah mempunyai program klien yang mudah, sila klik untuk memuat turun.
Cari port yang sah . Oleh kerana kami tidak mempunyai pelayan sekarang, kami perlu menggunakan alamat pelayan dan port yang disediakan oleh orang lain untuk penyahpepijatan. Langkah operasi: 1.Klik di sini untuk membuka halaman web 2. Cari di bahagian bawah halaman: 122.114.122.174:xxxxx 3. Gantikan bahagian xxxxx kepada baris kedua dalam program dan simpan Operasi halaman web:
Operasi program:
Buka cmd. Jika pembolehubah persekitaran PHP tidak dikonfigurasikan, sila semak: 3.1 pemasangan PHP dan konfigurasi persekitaran
Jalankan arahan cd desktop/socket. Tujuannya adalah untuk pergi ke folder soket dan mengisi laluan yang berkaitan mengikut lokasi folder anda sendiri.
Laksanakan program pelanggan php client.php. Jika ralat PHP Fatal dilaporkan pada masa ini, sila semak Klik untuk melihat penyelesaian
Akhirnya, kita dapat melihat bahawa maklumat telah diterima dalam halaman web. NOTA: Selepas melaksanakan program, jika CONNECTED tidak dicetak, tunggu sebentar dan dapatkan ERROR CONNET dikembalikan. Ini kerana nombor port kami telah tamat tempoh (hanya boleh digunakan selama 3 minit hanya kembali ke halaman web untuk memuat semula dan mengubah suainya ke dalam program ). Jika ia tidak dapat dijalankan dengan betul, sila tinggalkan mesej !
Atas ialah kandungan terperinci Bolehkah php melaksanakan komunikasi soket?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
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