語言

MulticastSocket 類別

定義

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

[Android.Runtime.Register("java/net/MulticastSocket", DoNotGenerateAcw=true)]
public class MulticastSocket : Java.Net.DatagramSocket
[<Android.Runtime.Register("java/net/MulticastSocket", DoNotGenerateAcw=true)>]
type MulticastSocket = class
    inherit DatagramSocket
繼承
屬性

備註

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。 MulticastSocket 是一種(UDP)資料報套接字,具備加入網際網路上其他多播主機「群組」的功能。

多播群組由類別 D IP 位址及標準 UDP 埠號指定。 D 類 IP 位址範圍為 224.0.0.0239.255.255.255,包含 。 位址 224.0.0.0 為保留,不應使用。

加入多播群組時,會先建立包含所需埠的 MulticastSocket,然後呼叫以下 joinGroup(InetAddress groupAddr) 方法:

// join a Multicast group and send the group salutations
            ...
            String msg = "Hello";
            InetAddress group = InetAddress.getByName("228.5.6.7");
            MulticastSocket s = new MulticastSocket(6789);
            s.joinGroup(group);
            byte[] bytes = msg.getBytes(StandardCharsets.UTF_8);
            DatagramPacket hi = new DatagramPacket(bytes, bytes.length,
                                        group, 6789);
            s.send(hi);
            // get their responses!
            byte[] buf = new byte[1000];
            DatagramPacket recv = new DatagramPacket(buf, buf.length);
            s.receive(recv);
            ...
            // OK, I'm done talking - leave the group...
            s.leaveGroup(group);

當向多播群組發送訊息時, <B>all</B> 訂閱該主機及埠口的接收者會接收該訊息(在封包的存活時間範圍內,詳見下文)。 套接字不需要是多播群組的成員才能傳送訊息給它。

當一個套接字訂閱到一個多播群組/埠時,它會接收其他主機傳送到該群組/埠的資料報,群組和埠的其他成員也會收到。 套接字透過 leaveGroup(InetAddress addr) 方法放棄群組成員資格。 <B> 多重多播套接字</B> 可同時訂閱多播群組與埠,且皆會接收群組資料報。

目前 applet 不允許使用 multicast socket。

在 1.1 版本中加入。

Java 文件 java.net.MulticastSocket

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
MulticastSocket()

建立一個多播套接字。

MulticastSocket(Int32)

建立一個多播 socket,並綁定到特定的埠口。

MulticastSocket(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

MulticastSocket(SocketAddress)

建立綁定到指定套接字位址的 MulticastSocket。

屬性

名稱 Description
Broadcast

測試是否有啟用SO_BROADCAST。 -或- 啟用/停用SO_BROADCAST。

(繼承來源 DatagramSocket)
Channel

回傳與此資料報套接字相關聯的唯一 java.nio.channels.DatagramChannel 物件(若有的話)。

(繼承來源 DatagramSocket)
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
InetAddress

回傳該套接字所連接的位址。

(繼承來源 DatagramSocket)
Interface

取得用於多播封包的網路介面位址。 -或- 設定多播網路介面,這些方法的行為會受到網路介面的數值影響。

IsBound

回傳 socket 的綁定狀態。

(繼承來源 DatagramSocket)
IsClosed

無論插座是否關閉,都會回傳。

(繼承來源 DatagramSocket)
IsConnected

回傳 socket 的連線狀態。

(繼承來源 DatagramSocket)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
JniPeerMembers

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

LocalAddress

取得套接字綁定的本地位址。

(繼承來源 DatagramSocket)
LocalPort

回傳該套接字綁定的本地主機的埠號。

(繼承來源 DatagramSocket)
LocalSocketAddress

回傳該套接字綁定的端點位址。

(繼承來源 DatagramSocket)
LoopbackMode

取得多播資料報的本地迴路設定。 -或- 啟用/啟用多播資料報的本地迴圈 該平台的網路程式碼會用此選項作為提示,用來設定多播資料是否會迴圈回本地套接字。

NetworkInterface

設定多播網路介面。 -或- 指定此套接字發送的多播資料報的網路介面。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
Port

回傳該套接字所連接的埠號。

(繼承來源 DatagramSocket)
ReceiveBufferSize

取得SO_RCVBUF DatagramSocket選項的值,也就是平台用於輸入 DatagramSocket的緩衝區大小。 -或- 將SO_RCVBUF選項設定為該選項的指定值 DatagramSocket

(繼承來源 DatagramSocket)
RemoteSocketAddress

回傳該套接字所連接端點的位址,或 null 若該端點未連接則回傳。

(繼承來源 DatagramSocket)
ReuseAddress

測試SO_REUSEADDR是否啟用。 -或- 啟用/停用SO_REUSEADDR插槽選項。

(繼承來源 DatagramSocket)
SendBufferSize

取得SO_SNDBUF DatagramSocket選項的值,即平台 DatagramSocket輸出該選項時使用的緩衝區大小。 -或- 將SO_SNDBUF選項設定為該 的指定值 DatagramSocket

(繼承來源 DatagramSocket)
SoTimeout

取得SO_TIMEOUT設定。 -或- 在指定的逾時時間內啟用/停用SO_TIMEOUT,單位為毫秒。

(繼承來源 DatagramSocket)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

TimeToLive

取得多播封包在 socket 發出的預設存活時間。 -或- 設定多 MulticastSocket 播封包的預設存活時間,以控制多播的範圍。

TrafficClass

在 IP 資料報標頭中取得從此 DatagramSocket 發送的封包的流量類別或服務類型。 -或- 在 IP 資料報標頭中設定流量類別或服務類型八位元組,以指定從此 DatagramSocket 傳送的資料報。

(繼承來源 DatagramSocket)
TTL
已淘汰.

取得多播封包在 socket 發出的預設存活時間。 -或- 設定多 MulticastSocket 播封包的預設存活時間,以控制多播的範圍。

方法

名稱 Description
Bind(SocketAddress)

將此 DatagramSocket 綁定到特定的位址與埠口。

(繼承來源 DatagramSocket)
Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Close()

關閉這個資料報插槽。

(繼承來源 DatagramSocket)
Connect(InetAddress, Int32)

將該套接字連接到該套接字的遠端位址。

(繼承來源 DatagramSocket)
Connect(SocketAddress)

將此套接字連接到遠端套接字位址(IP 位址 + 埠號)。

(繼承來源 DatagramSocket)
ConnectAsync(InetAddress, Int32)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 DatagramSocket)
ConnectAsync(SocketAddress)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 DatagramSocket)
Construct(JniObjectReference, JniObjectReferenceOptions)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
Disconnect()

斷開插座。

(繼承來源 DatagramSocket)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
Equals(Object)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetOption(ISocketOption)

回傳一個套接字選項的值。

(繼承來源 DatagramSocket)
JavaFinalize()

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
JoinGroup(InetAddress)

加入多頻道群組。

JoinGroup(SocketAddress, NetworkInterface)

在指定的介面加入指定的多播群組。

LeaveGroup(InetAddress)

離開多播群組。

LeaveGroup(SocketAddress, NetworkInterface)

在指定的本地介面上保留一個多播群組。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Receive(DatagramPacket)

從此套接字接收資料報封包。

(繼承來源 DatagramSocket)
ReceiveAsync(DatagramPacket)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 DatagramSocket)
Send(DatagramPacket, SByte)
已淘汰.

傳送一個資料報封包到目的地,且 TTL(存活時間)與該套接字的預設值不同。

Send(DatagramPacket)

從此套接字傳送資料報封包。

(繼承來源 DatagramSocket)
SendAsync(DatagramPacket)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 DatagramSocket)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetOption(ISocketOption, Object)

設定插槽選項的值。

(繼承來源 DatagramSocket)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
SupportedOptions()

回傳一組由該套接字所支援的套接字選項。

(繼承來源 DatagramSocket)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

(繼承來源 DatagramSocket)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於