MulticastSocket 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多播資料報套接字類別對於傳送和接收 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 |
回傳與此資料報套接字相關聯的唯一 |
| Class |
回傳此 |
| 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 |
| RemoteSocketAddress |
回傳該套接字所連接端點的位址,或 |
| ReuseAddress |
測試SO_REUSEADDR是否啟用。 -或- 啟用/停用SO_REUSEADDR插槽選項。 (繼承來源 DatagramSocket) |
| SendBufferSize |
取得SO_SNDBUF |
| SoTimeout |
取得SO_TIMEOUT設定。 -或- 在指定的逾時時間內啟用/停用SO_TIMEOUT,單位為毫秒。 (繼承來源 DatagramSocket) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| TimeToLive |
取得多播封包在 socket 發出的預設存活時間。 -或- 設定多 |
| TrafficClass |
在 IP 資料報標頭中取得從此 DatagramSocket 發送的封包的流量類別或服務類型。 -或- 在 IP 資料報標頭中設定流量類別或服務類型八位元組,以指定從此 DatagramSocket 傳送的資料報。 (繼承來源 DatagramSocket) |
| TTL |
已淘汰.
取得多播封包在 socket 發出的預設存活時間。 -或- 設定多 |
方法
| 名稱 | 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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
多播資料報套接字類別對於傳送和接收 IP 多播封包非常有用。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |