1. Konsep Jaringan Dasar
Pertama, klarifikasi sebuah konsep: pemrograman jaringan! = Pemrograman situs web, pemrograman jaringan sekarang umumnya disebut pemrograman TCP/IP.
2. Protokol dan antarmuka komunikasi jaringan
3. Ide Layering Protokol Komunikasi
4. Model referensi
V. Protokol IP
Komputer setiap orang memiliki alamat IP yang unik sehingga pesan kesalahan tidak akan dikirimkan saat berkomunikasi satu sama lain.
Alamat IP dibagi menjadi empat segmen dengan satu titik. Alamat IP di dalam komputer diwakili oleh empat byte. Satu byte mewakili segmen, dan angka maksimum yang diwakili oleh setiap byte hanya dapat mencapai 255.
Vi. Protokol TCP dan Protokol UDP
TCP dan UDP terletak di lapisan yang sama dan keduanya didasarkan pada lapisan IP. Karena kedua komputer memiliki alamat IP yang berbeda, kedua komputer dapat dibedakan dan dapat berbicara satu sama lain. Umumnya ada dua cara untuk berbicara: yang pertama adalah TCP dan yang kedua adalah UDP. TCP adalah koneksi yang andal. TCP seperti melakukan panggilan telepon. Anda perlu menelepon pihak lain terlebih dahulu dan menunggu pihak lain merespons sebelum terus berbicara dengan pihak lain. Artinya, Anda harus mengonfirmasi bahwa Anda dapat mengirim pesan sebelum mengirim pesan. TCP mengunggah apa pun yang dapat diandalkan. Selama koneksi dibuat pada dua mesin, data yang dikirim pada mesin pasti akan dikirim ke mesin pihak lain. UDP seperti mengirim telegram, dan itu akan dilakukan jika dikirim. Tidak masalah apakah pihak lain menerimanya atau tidak, jadi UDP tidak dapat diandalkan. Meskipun TCP mentransmisikan data secara andal, ditransmisikan secara perlahan. UDP mengirimkan data yang tidak dapat diandalkan, tetapi ditransmisikan dengan cepat.
7. Pemrograman Soket
Secara umum, pemrograman jaringan disebut pemrograman soket, dan soket berarti "soket" dalam bahasa Inggris.
Pasang soket di kedua komputer, dan kemudian pasang dua ujung kabel ke soket kedua komputer, sehingga kedua komputer dapat membuat koneksi. Soket ini adalah soketnya.
Karena mereka dapat berkomunikasi satu sama lain, saya mengatakan bahwa Anda adalah server saya, tetapi dalam arti logis, saya harus mengirimkan barang -barang itu kepada Anda terlebih dahulu, dan kemudian Anda akan menangani dan meneruskannya. Jadi Anda menyebutnya server. Tetapi dalam arti teknis, hanya TCP yang akan membagi server dan klien. Untuk UDP, dalam arti yang ketat, tidak ada yang disebut server dan klien. Soket server TCP disebut ServerSocket, dan soket klien disebut soket.
Ketika dua komputer terhubung satu sama lain, Anda harus terlebih dahulu mengetahui alamat IP mereka, tetapi hanya memberikan alamat IP tidak cukup. Anda juga harus memiliki nomor port koneksi, yaitu, aplikasi mana yang akan terhubung.
Nomor port digunakan untuk membedakan berbagai aplikasi pada mesin. Nomor port menempati 2 byte di dalam komputer. Ada hingga 65536 nomor port pada mesin. Aplikasi dapat menempati beberapa nomor port. Jika nomor port ditempati oleh aplikasi, aplikasi lain tidak akan lagi dapat menggunakan nomor port ini. Ingat, jika program yang kami tulis harus menempati nomor port, jika ingin menempati nomor port di atas 1024, tidak menempati nomor port di bawah 1024, karena sistem dapat diminta setiap saat. Nomor port itu sendiri dibagi menjadi port TCP dan port UDP. Port TCP 8888 dan Port UDP 8888 adalah dua port yang sama sekali berbeda. Ada 65536 port TCP dan port UDP.
8. Model Komunikasi Soket TCP
9. Contoh Penggunaan Soket
Server
Impor java.net.*; impor java.io.*; testserversocket kelas publik {public static void main (string args []) melempar Exception {serversocket ss = ServerSocket baru (6666); /* Saat membuat objek server, sering kali diberi nomor port. Artinya adalah menggunakan nomor port mana yang harus digunakan objek server baru dan nomor port mana yang akan mendengarkan koneksi klien. Oleh karena itu, arti menentukan nomor port adalah untuk memberi tahu komputer di mana objek ServerSocket mendengarkan koneksi klien. */ * Sisi server menerima permintaan koneksi klien secara terus menerus, sehingga pemrograman sisi server umumnya merupakan loop mati dan berjalan tanpa henti. */ while (true) {socket s = s.accept (); /*Panggil metode ACCECT () di sisi server untuk menerima objek koneksi klien. Metode ACCECT () adalah metode pemblokiran. Saya telah menunggu dengan bodohnya apakah klien berlaku untuk koneksi. Kemudian soket soket di sisi server membuat koneksi dengan soket soket pada klien. * / /* Apakah klien dapat terhubung ke sisi server tergantung pada apakah sisi server menerima permintaan koneksi klien. Jika klien menerima permintaan koneksi, maka instal soket soket di sisi server untuk membuat koneksi dengan klien melalui soket ini, dan berkomunikasi satu sama lain. */ System.out.println ("A Client Connected!"); /* Gunakan aliran InputStream untuk menerima informasi yang dikirim dari klien, dan gunakan aliran data DataInputStream untuk memproses informasi yang diterima*/ datainputStream dis = new DataInputStream (s.getInputStream ()); /* Gunakan readutf (metode membaca semua informasi yang diterima dan menyimpannya di variabel STR untuk membaca metode readutf () juga merupakan metode pemblokiran. Ini dengan bodohnya menunggu klien untuk mengirim informasi, dan kemudian membaca informasi yang diterima. Jika klien tidak akan menulis sesuatu yang tidak akan ada yang tidak dapat dipahami. Program sisi server diblokir, sehingga klien lain tidak dapat terhubung, karena jika klien lain ingin terhubung ke server, ia harus memanggil metode penerimaan () di sisi server. dapat membaca informasi. Soket klien
impor java.net.*; impor java.io.*; kelas publik testclientsocket {public static void main (string args []) melempar pengecualian {socket s = soket baru ("127.0.0.1", 6666); /*Klien berlaku untuk terhubung ke sisi server* / /*setelah menghubungkan ke sisi server, Anda dapat mengeluarkan informasi ke sisi server dan menerima informasi yang dikembalikan dari sisi server, dan menerima informasi output informasi dan menerima informasi pengembalian. Baik prinsip input dan output aliran harus digunakan untuk memproses informasi*//*di sini adalah informasi output stream outputStream ke sisi server*/ outputStream os = s.getOutputStream (); DataOutputStream dos = DataOutputStream baru (OS); Thread.sleep (30000);/*Klien tidur selama 30 detik sebelum mengirim informasi ke server*/ dos.writeutf ("Hello Server!"); }}Klien meminta koneksi ke server melalui port 6666. Setelah server menerima permintaan koneksi klien, ia menginstal soket di server dan kemudian menghubungkan soket ini dengan soket klien, sehingga server dapat berkomunikasi dengan klien. Ketika klien lain berlaku untuk koneksi, setelah server menerimanya, soket lain akan diinstal untuk terhubung ke soket klien.