Rumah  >  Artikel  >  Java  >  Java DatagramSocket

Java DatagramSocket

王林
王林asal
2024-08-30 16:16:30526semak imbas

Kelas Java DatagramSocket mewakili sejenis soket rangkaian yang tanpa sambungan dan digunakan untuk menghantar paket datagram dan menerima paket datagram; untuk penghantaran mana-mana paket, soket datagram ialah titik penghantaran dan penerimaan perkhidmatan, dan setiap paket yang dihantar atau diterima menggunakan soket datagram dialamatkan secara individu dan kemudian dihalakan ke destinasi, dan jika berbilang paket dihantar antara dua mesin, penghalaan paket mungkin berbeza, dan ia boleh tiba dalam sebarang susunan, dan pilihan SO_BROADCAST didayakan dalam soket datagram yang baru dibina yang membolehkan penghantaran gambar rajah siaran.

IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks

Sintaks java DatagramSocket adalah seperti berikut:

DatagramSocket variable_name = new DatagramSocket();

Bagaimana DatagramSocket berfungsi dalam Java?

  • Soket Datagram dicipta pada bahagian program klien dan bahagian program pelayan dengan menggunakan kelas DatagramSocket untuk pautan komunikasi dan untuk menghantar dan menerima paket data.
  • Pembina DatagramSocket() boleh dipilih untuk mencipta soket datagram pada bahagian program klien, dan pembina DatagramSocket(int port) boleh dipilih untuk mencipta soket datagram pada bahagian program pelayan.
  • Objek SocketException dilemparkan oleh salah satu daripada pembina jika mereka tidak boleh mencipta soket datagram atau jika soket datagram tidak boleh diikat ke port.
  • Setelah atur cara mencipta objek soket datagram, hantar(DatagramPacket dgp) dipanggil oleh atur cara untuk menghantar paket datagram dan menerima(DatagramPacket dgp) untuk menerima paket datagram, masing-masing.

Pertimbangkan program di bawah untuk menghantar dan menerima paket datagram dengan menggunakan kelas DatagramSocket:

Kod:

//Java program to send datagram packets using DatagramSocket class
import java.net.*;
public class Sender
{
public static void main(String[] args) throws Exception
{
DatagramSocket datasoc = new DatagramSocket();
String strn = "Welcome to DatagramSocket class";
InetAddress ipaddr = InetAddress.getByName("127.0.0.1");                
DatagramPacket dpac = new DatagramPacket(strn.getBytes(), strn.length(), ipaddr, 3000);
datasoc.send(dpac);
datasoc.close();
}
}
//Java program to receive datagram packets using DatagramSocket class
import java.net.*;
public class Receiver
{
public static void main(String[] args) throws Exception
{
DatagramSocket datasoc = new DatagramSocket(3000);
byte[] buff = new byte[1024];
DatagramPacket dpac = new DatagramPacket(buff, 1024);
datasoc.receive(dpac);
String strn = new String(dpac.getData(), 0, dpac.getLength());
System.out.println(strn);
datasoc.close();
}
}

Output:

Java DatagramSocket

Penjelasan: Dalam program di atas, dua set program dicipta: menghantar paket data menggunakan kelas DatagramSocket dan satu untuk menerima paket data menggunakan kelas DatagramSocket. Dalam program untuk menghantar paket data menggunakan kelas DatagramSocket, contoh kelas DatagramSocket dicipta. Kemudian rentetan diberikan kepada strn pembolehubah. Kemudian alamat IP internet diberikan kepada pembolehubah. Kemudian, paket datagram dibuat dan kaedah hantar kelas DatagramSocket digunakan untuk menghantar paket data ke alamat IP destinasi.

Dalam program untuk menerima paket data menggunakan kelas DatagramSocket, contoh kelas DatagramSocket dicipta. Kemudian contoh kelas bait dicipta. Kemudian, paket datagram dicipta dan kaedah terima kelas DatagramSocket digunakan untuk menerima paket data ke alamat IP sumber.

Pembina

Terdapat beberapa pembina kelas DatagramSocket. Mereka ialah:

  • DatagramSocket(): Soket datagram dibina menggunakan pembina DatagramSocket() dan ia terikat pada port yang tersedia pada mesin hos tempatan.
  • DatagramSocket(int): Soket datagram dibina menggunakan pembina DatagramSocket() dan ia diikat pada port yang ditentukan pada mesin hos tempatan.
  • DatagramSocket(int, InetAddress): Soket datagram dicipta menggunakan pembina DatagramSocket() dan ia terikat pada alamat internet tempatan yang ditentukan.

Contoh untuk Melaksanakan Java DatagramSocket

Di bawah adalah contoh yang disebutkan:

Contoh

Tunjukkan penggunaan pelbagai kaedah kelas DatagramScoket.

Kod:

import java.io.IOException;
import java.net.DatagramSocket;
public class program
{
public static void main(String[] args) throws IOException
{
//Datagram Socket class Constructor is called
DatagramSocket sock = new DatagramSocket(1235);
// The method setSendBufferSize() method of datagram socket class is called
sock.setSendBufferSize(20);
// The method getSendBufferSize() method of datagram socket class is called
System.out.println("The buffer size sent is : " + sock.getSendBufferSize());
// The method setReceiveBufferSize() method of datagram socket class is called
sock.setReceiveBufferSize(20);
// The method getReceiveBufferSize() method of datagram socket class is called
System.out.println("The buffer size received is : " +
sock.getReceiveBufferSize());
// The method setReuseAddress() method of datagram socket class is called
sock.setReuseAddress(false);
// The method getReuseAddress() method of datagram socket class is called
System.out.println("The SetReuse address is set to : " +
sock.getReuseAddress());
// The method setBroadcast() method of datagram socket class is called
sock.setBroadcast(true);
// The method getBroadcast() method of datagram socket class is called
System.out.println("The setBroadcast is set to : " +
sock.getBroadcast());
// The method setTrafficClass() method of datagram socket class is called
sock.setTrafficClass(45);
// The method getTrafficClass() method of datagram socket class is called
System.out.println("The Traffic class is set to : " +
sock.getTrafficClass());
// The method getChannel() method of datagram socket class is called
System.out.println("The Channel is set to : " +
((sock.getChannel()!=null)?sock.getChannel():"null"));
// The method setSocketImplFactory() method of datagram socket class is called
sock.setDatagramSocketImplFactory(null);
// The method close() method of datagram socket class is called
sock.close();
// The method isClosed() method of datagram socket class is called
System.out.println("If the Socket Is Closed : " + sock.isClosed());
}
}

Output:

Java DatagramSocket

Penjelasan: Dalam atur cara di atas, kelas yang dipanggil atur cara ditakrifkan. Kemudian contoh kelas soket datagram dicipta. Kaedah setSendBufferSize() kaedah kelas soket datagram dipanggil, yang menghantar saiz penimbal. Kemudian kaedah getSendBufferSize() kelas soket datagram dipanggil, yang menerima saiz penimbal.

Kemudian kaedah setReceiveBufferSize() kelas soket datagram dipanggil, dan kemudian kaedah getReceiveBufferSize() kaedah kelas soket datagram dipanggil, yang digunakan untuk menghantar dan menerima saiz penimbal. Kemudian kaedah setReuseAddress() kaedah kelas soket datagram dipanggil, dan kaedah getReuseAddress() kaedah kelas soket datagram dipanggil untuk menghantar dan menerima alamat yang digunakan semula.

Kemudian kaedah setBroadcast() kaedah kelas soket datagram dipanggil, dan kemudian kaedah getBroadcast() kaedah kelas soket datagram dipanggil untuk menetapkan dan mendapatkan siaran. Kemudian kaedah setTrafficClass() kelas soket datagram dipanggil, dan kaedah getTrafficClass() kaedah kelas soket datagram dipanggil untuk menetapkan dan mendapatkan kelas trafik.

Kemudian kaedah getChannel() kelas soket datagram dipanggil, yang mengembalikan benar atau salah. Kemudian kaedah kaedah close() kelas soket datagram dipanggil untuk menutup soket. Kemudian kaedah isClosed() bagi kelas soket datagram dipanggil untuk menyemak sama ada soket ditutup atau tidak, dan ia mengembalikan nilai benar jika soket ditutup sebaliknya palsu.

Kesimpulan

Dalam tutorial ini, kami memahami konsep kelas DatagramSocket dalam Java melalui definisi, sintaks kelas DatagramSocket dalam Java, kerja kelas DatagramSocket dalam Java melalui contoh dan outputnya.

Atas ialah kandungan terperinci Java DatagramSocket. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Ungkapan Lambda JavaArtikel seterusnya:Ungkapan Lambda Java