//Kembalikan nama host lokal dan alamat IP;
InetAddress i = InetAddress.getLocalHost();
i.getHostAddress();//IP
i.getAddress();//???
//Mendapatkan informasi terkait komputer melalui nama komputer;
InetAddress i = InetAddress.getByName("Livingstone-PC");
//Dapatkan informasi terkait host melalui nama domain
InetAddress ibaidu = InetAddress.getByName("www.baidu.com");
URL url = URL baru("http://localhost:8080/demo.html");
url.getHost();
Soket (klien):
Ketika objek dibuat, Anda dapat terhubung ke host yang ditentukan. Karena TCP berorientasi pada koneksi, ketika membuat layanan soket, server harus ada dan koneksi berhasil. Setelah koneksi dibuat, transmisi data dilakukan pada saluran ;
//Buat layanan soket klien dan tentukan host dan port target;
Soket s = Soket baru("cj-PC", 10003);
// Untuk mengirim data, aliran keluaran dalam aliran soket harus diperoleh;
OutputStream keluar = s.getOutputStream();
//PrintWriter out = new PrintWriter(s.getOutputStream(),true);out.println("Halo");
keluar.write("halo".getBytes());
//Menerima pesan balasan
InputStream di = s.getInputStream();
byte[] bufIn = byte baru[1024];
int angka = masuk.baca(bufIn);
System.out.println(String baru(bufIn, 0, angka));
s.close();//Objek aliran dienkapsulasi dalam soket dan secara otomatis menutup objek aliran;
ServerSocket (server):
Membangun layanan soket sisi server, ServerSocket, dan mendengarkan port;
Dapatkan objek klien yang terhubung melalui metode penerimaan objek. Jika tidak ada koneksi, ia akan menunggu (memblokir):
Jika klien mengirimkan data, server harus menggunakan aliran baca dari objek klien yang sesuai untuk mendapatkan data yang dikirim oleh klien;
ServerSocket ss = ServerSocket baru(10003);
//ServerSocket(int port,int backlog);
Soket s = ss.accept();
InputStream di = s.getInputStream();
byte[] buf = byte baru[2014];
int len = masuk.baca(buf);
String rec = String baru(buf, 0, len);
Sistem.keluar.println(rec);
// mengirim kembali pesan
OutputStream keluar = s.getOutputStream();
keluar.tulis("diterima".getBytes());
s.close();//Server akan menutup klien secara otomatis;
(1) Klien:
Buat layanan soket dan tentukan host dan port yang akan dihubungkan;
Dapatkan aliran keluaran di aliran soket, tulis data ke aliran, dan kirimkan ke server melalui jaringan;
Dapatkan aliran input dalam aliran soket, dapatkan data yang diumpankan kembali oleh server, dan tutup sumber daya klien;
DatagramSocket: Mengirim sepotong data teks melalui transmisi UDP;
Mengirim:
//Buat layanan udp, buat objek DatagramSocket dan berikan nomor produk;
Soket DatagramSocket = DatagramSocket baru(8888);
// Menentukan data dan merangkumnya ke dalam paket data, DatagramPacket (nomor port mesin tujuan perlu ditentukan);
byte[] buf = "udp saya datang".getBytes();
DatagramPacket dp = DatagramPacket baru(buf, buf.length,
InetAddress.getByName("Nama-Mesin"), 10086);
// mengirim;
soket.kirim(dp);
// penutup;
soket.close();
Menerima:
//Definisikan layanan udpsocket. Biasanya port dipantau, yang sebenarnya mendefinisikan ID digital untuk aplikasi jaringan penerima;
Soket DatagramSocket = DatagramSocket baru(10086);
while (true) {//Tujuannya adalah untuk terus memantau
byte[] buf = byte baru[1024];
//Tentukan paket data untuk menyimpan data;
DatagramPacket dp = DatagramPacket baru(buf, buf.length);
// Menyimpan data yang diterima ke dalam paket data melalui metode penerimaan layanan;
socket.receive(dp);//Metode pemblokiran, macet di sini jika tidak ada data;
// Mendapatkan data melalui metode paket data;
String ip = dp.getAddress().getHostAddress();
Data string = String baru(dp.getData(), 0, dp.getLength());
int port = dp.getPort();
}
Socket s = new Socket("Nama-Mesin", 10005);
OutputStream keluar = s.getOutputStream();
FileInputStream fis = FileInputStream baru("awf.jpg");
byte[] buf = byte baru[1024];
int len = 0;
while ((len = fis.read(buf)) != -1) {
keluar.tulis(buf, 0, len);
}
// Berhenti mengirim data
s.shutdownOutput();
ServerSocket ss = new ServerSocket(10005); //ss.accept() metode memiliki efek pemblokiran;
// Sebuah thread terpisah dapat dibuat untuk setiap Socket yang diperoleh dengan metode terima();