Asas dan contoh pengaturcaraan soket Java
Pengaturcaraan soket Java adalah asas komunikasi rangkaian, dan pertukaran data antara pelanggan dan pelayan direalisasikan melalui soket. 1. Socket di Java dibahagikan kepada kelas soket yang digunakan oleh klien dan kelas ServerSocket yang digunakan oleh pelayan; 2. Apabila menulis program soket, anda mesti mula memulakan port pendengaran pelayan, dan kemudian memulakan sambungan oleh pelanggan; 3. Proses komunikasi termasuk penubuhan sambungan, bacaan dan penulisan data, dan penutupan aliran; 4. Nota termasuk mengelakkan konflik pelabuhan, dengan betul mengkonfigurasi alamat IP, sumber yang cukup menutup, dan menyokong beberapa pelanggan. Menguasai ini dapat merealisasikan fungsi komunikasi rangkaian asas.
Dalam pengaturcaraan rangkaian Java, soket adalah salah satu bahagian yang paling asas dan penting. Ia membolehkan komunikasi antara dua program melalui rangkaian, LAN tempatan dan Internet. Artikel ini terutamanya bercakap tentang konsep asas pengaturcaraan soket di Java dan contoh mudah untuk membantu anda memulakan dengan cepat.

Apa itu Socket Java?
Di Java, soket adalah mekanisme yang digunakan untuk mewujudkan sambungan dan pertukaran data antara peranti yang berbeza dalam rangkaian. Java menyediakan pakej java.net
untuk menyokong komunikasi rangkaian, dua kelas teras adalah:

-
Socket
: Digunakan untuk pelanggan, menunjukkan sambungan ke pelayan. -
ServerSocket
: Digunakan untuk mendengar permintaan pelanggan dan menubuhkan sambungan.
Ringkasnya, soket adalah seperti telefon, panggilan pelanggan (bersambung), jawapan pelayan (menerima sambungan), dan kemudian kedua -dua pihak boleh bercakap (menghantar data).
Bagaimana cara menulis program soket Java yang mudah?
Mari kita gunakan contoh klasik "klien menghantar mesej, balasan pelayan" untuk menggambarkan keseluruhan proses.

Langkah 1: Mulakan pelayan
Pelayan perlu dimulakan terlebih dahulu dan menunggu pelanggan menyambung. Anda boleh menggunakan ServerSocket
untuk mendengar port.
import java.io.*; import java.net.*; pelayan kelas awam { public static void main (string [] args) { cuba (serverocket serversocket = new ServerSocket (12345)) { System.out.println ("Pelayan telah bermula, menunggu sambungan ..."); Soket soket = serversocket.accept (); // blok sehingga pelanggan menghubungkan System.out.println ("Client Connected"); BufferedReader In = New BufferedReader ( baru inputStreamReader (socket.getInputStream ())); PrintWriter Out = PrintWriter baru (socket.getOutputStream (), true); String clientMessage = in.readLine (); System.out.println ("Diterima:" ClientMessage); out.println ("Pelayan menerima mesej anda:" ClientMessage); } menangkap (ioException e) { e.printstackTrace (); } } }
Langkah 2: Jalankan pelanggan
Pelanggan membuat contoh Socket
dan menyambung ke IP dan port pelayan.
import java.io.*; import java.net.*; Pelanggan Kelas Awam { public static void main (string [] args) { cuba (soket soket = soket baru ("localhost", 12345)) { PrintWriter Out = PrintWriter baru (socket.getOutputStream (), true); BufferedReader In = New BufferedReader ( baru inputStreamReader (socket.getInputStream ())); out.println ("Hello, Server!"); Tindak balas rentetan = in.readLine (); System.out.println ("Response:" Response); } menangkap (ioException e) { e.printstackTrace (); } } }
Walaupun contoh ini mudah, ia meliputi langkah -langkah teras pengaturcaraan soket: menyambung, membaca dan menulis data.
Soalan dan langkah berjaga -jaga yang sering ditanya
- Pelabuhan yang diduduki : Jika nombor port yang ditentukan telah diduduki oleh program lain, pelayan tidak akan dimulakan. Anda boleh cuba menukar nombor port, seperti antara 1024 dan 65535.
- Ralat Konfigurasi Alamat IP : Pastikan pelanggan disambungkan ke alamat IP yang betul. Jika ia adalah ujian asli, gunakan
localhost
atau127.0.0.1
. - Pesanan Penutupan Stream : Pastikan anda ingat untuk menutup aliran input dan output dan sambungan soket, jika tidak, kebocoran sumber mungkin berlaku.
- Proses multithreading Pelbagai pelanggan : Contoh di atas hanya boleh mengendalikan satu pelanggan. Jika anda ingin mengendalikan pelbagai sambungan pada masa yang sama, anda perlu menggunakan Multi-Threading atau NIO.
- Reka Bentuk Protokol : Dalam pembangunan sebenar, adalah disyorkan untuk menentukan protokol komunikasi anda sendiri, seperti menghantar data berstruktur dalam format JSON.
Mari kita meringkaskan
Pengaturcaraan soket Java tidak sukar, kunci adalah untuk memahami bagaimana model klien/pelayan berfungsi. Selepas menguasai sambungan asas dan proses membaca dan menulis data, fungsi yang lebih kompleks dapat diperluas atas dasar ini, seperti pemindahan fail, sembang masa nyata, dan lain-lain. Pada dasarnya semua itu, cubalah.
Atas ialah kandungan terperinci Asas dan contoh pengaturcaraan soket Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

iTertools.Combinations digunakan untuk menjana semua kombinasi yang tidak berulang (perintah tidak relevan) yang memilih bilangan elemen tertentu dari objek Itable. Penggunaannya termasuk: 1. Pilih 2 kombinasi elemen dari senarai, seperti ('a', 'b'), ('a', 'c'), dan sebagainya, untuk mengelakkan perintah berulang; 2. Ambil 3 kombinasi watak rentetan, seperti "ABC" dan "ABD", yang sesuai untuk penjanaan berikutnya; 3. Cari kombinasi di mana jumlah dua nombor adalah sama dengan nilai sasaran, seperti 1 5 = 6, memudahkan logik gelung berganda; Perbezaan antara kombinasi dan susunan terletak pada sama ada perintah itu penting, kombinasi menganggap Ab dan BA sebagai sama, sementara permutasi dianggap berbeza;

First,checkiftheFnkeysettingisinterferingbytryingboththevolumekeyaloneandFn volumekey,thentoggleFnLockwithFn Escifavailable.2.EnterBIOS/UEFIduringbootandenablefunctionkeysordisableHotkeyModetoensurevolumekeysarerecognized.3.Updateorreinstallaudiodriv

Python adalah alat yang cekap untuk melaksanakan proses ETL. 1. Pengekstrakan data: Data boleh diekstrak dari pangkalan data, API, fail dan sumber lain melalui panda, sqlalchemy, permintaan dan perpustakaan lain; 2. Penukaran Data: Gunakan panda untuk pembersihan, penukaran jenis, persatuan, pengagregatan dan operasi lain untuk memastikan kualiti data dan mengoptimumkan prestasi; 3. Pemuatan Data: Gunakan kaedah Pandas 'TO_SQL atau platform awan SDK untuk menulis data ke sistem sasaran, perhatikan kaedah menulis dan pemprosesan batch; 4. Cadangan Alat: Airflow, Dagster, Prefect digunakan untuk penjadualan dan pengurusan proses, menggabungkan penggera log dan persekitaran maya untuk meningkatkan kestabilan dan mengekalkan.

HTTP Log Middleware di GO boleh merakam kaedah permintaan, laluan, IP klien dan memakan masa. 1. Gunakan http.handlerfunc untuk membungkus pemproses, 2. Rekod waktu mula dan masa akhir sebelum dan selepas memanggil next.servehttp, 3. Dapatkan IP pelanggan sebenar melalui r.remoteaddr dan X-forward-for headers, 4. Gunakan log.printf untuk mengeluarkan log permintaan, 5. Kod sampel lengkap telah disahkan untuk dijalankan dan sesuai untuk memulakan projek kecil dan sederhana. Cadangan lanjutan termasuk menangkap kod status, menyokong log JSON dan meminta penjejakan ID.

Testthepdfinanotherapptodetermineiftheisseiswiththefileoredge.2.enableTetHEBuilt-Inpdfviewerbyturningoff "AlwaysopenpdffileseXternally" dan "muat turun" inedgesettings.3.clearbrowsdataincludingcookiesandcookiescookiesandcookiescookiesandcookiescookieshincookieshincookiescookiescookiescookiescookiescookiescookiescookiescookiescokiescookiescookiescookiescookiescookiescooker

Chromecanopenlocalfileslikehtmlandpdfsbyusing "openfile" ordraggingthemintothebrowser; ensureTheaddressStartSwithFile: ///; 2.securityRestrictionsblockajax, localStorage, andcross-folderacSonfile:/ealerSoR.

Perlawanan adalah fungsi yang digunakan untuk menyediakan persekitaran atau data pratetap untuk ujian. 1. Gunakan penghias @pytest.fixture untuk menentukan perlawanan; 2. Suntikan perlawanan dalam bentuk parameter dalam fungsi ujian; 3. Melaksanakan persediaan sebelum hasil, dan kemudian Teardown; 4. Skop kawalan melalui parameter skop, seperti fungsi, modul, dan lain -lain; 5. Letakkan perlawanan bersama dalam conftest.py untuk mencapai perkongsian silang fail, dengan itu meningkatkan kebolehkerjaan dan kebolehgunaan semula ujian.
