|
![]() |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--ipworks.Mcast
The MCast class is used to multicast UDP datagrams to multicast capable hosts in multicast-enabled networks. It can act both as a client and a server and communicate with any number of hosts simultaneously, as well as generate and receive broadcast packets.
The MCast class is very similar to UDPPort, except for some additional properties that provide support for multicast datagrams. To send datagrams to a multicast group, simply assign the address of the group to RemoteHost . To receive datagrams from one or more groups, assign the group addresses to MulticastGroup one by one (after the class is activated. TimeToLive allows to specify how many subnets a packet should be allowed to receive. ReceiveInterface and SendInterface allow you to select the network interface for multicast operations.
The class is activated/deactivated through the Active property. This property enables or disables sends or receives. The data can be sent in the same way as UDPPort, by using the DataToSend property. The destination is specified using the RemoteHost and RemotePort properties. Inbound data is received through the DataIn event.
Constructor Summary | |
Mcast()
|
Method Summary | |
void |
addMcastEventListener(McastEventListener l)
|
void |
fireDataIn(byte[] datagram,
java.lang.String sourceAddress,
int sourcePort)
Fired when data is received. |
void |
fireError(int errorCode,
java.lang.String description)
Information about errors during data delivery. |
void |
fireReadyToSend()
Fired when the component is ready to send data. |
int |
getInBufferSize()
The size in bytes of the incoming queue of the socket. |
java.lang.String |
getLocalHost()
The name of the local host or user-assigned IP interface through which connections are accepted or initiated. |
int |
getLocalPort()
The UDP port in the local host where MCast binds. |
int |
getMaxPacketSize()
The maximum length of the packets that can be received. |
java.lang.String |
getMulticastGroup()
Multicast group to join or leave. |
int |
getOutBufferSize()
The size in bytes of the outgoing queue of the socket. |
java.lang.String |
getReceiveInterface()
The interface where to receive multicast packets into. |
java.lang.String |
getRemoteHost()
The address of the remote host (multicast group). |
int |
getRemotePort()
The UDP port in the remote host. |
java.lang.String |
getSendInterface()
The interface where to send multicast packets from. |
int |
getTimeToLive()
The maximum number of subnets that a multicast datagram can traverse. |
boolean |
isAcceptData()
Enables or disables data reception (the DataIn event). |
boolean |
isActive()
Enables or disables sending and receiving of data. |
boolean |
isLoopback()
Enables or disables loopback of data sent to the multicast group. |
boolean |
isShareLocalPort()
If set to True, allows more than one instance of the component to be Active on the same LocalPort . |
void |
removeMcastEventListener(McastEventListener l)
|
void |
setAcceptData(boolean acceptData)
Enables or disables data reception (the DataIn event). |
void |
setActive(boolean active)
Enables or disables sending and receiving of data. |
void |
setDataToSend(byte[] dataToSend)
A string of data to be sent to the remote host. |
void |
setInBufferSize(int inBufferSize)
The size in bytes of the incoming queue of the socket. |
void |
setLocalHost(java.lang.String localHost)
The name of the local host or user-assigned IP interface through which connections are accepted or initiated. |
void |
setLocalPort(int localPort)
The UDP port in the local host where MCast binds. |
void |
setLoopback(boolean loopback)
Enables or disables loopback of data sent to the multicast group. |
void |
setMaxPacketSize(int maxPacketSize)
The maximum length of the packets that can be received. |
void |
setMulticastGroup(java.lang.String multicastGroup)
Multicast group to join or leave. |
void |
setOutBufferSize(int outBufferSize)
The size in bytes of the outgoing queue of the socket. |
void |
setReceiveInterface(java.lang.String receiveInterface)
The interface where to receive multicast packets into. |
void |
setRemoteHost(java.lang.String remoteHost)
The address of the remote host (multicast group). |
void |
setRemotePort(int remotePort)
The UDP port in the remote host. |
void |
setSendInterface(java.lang.String sendInterface)
The interface where to send multicast packets from. |
void |
setShareLocalPort(boolean shareLocalPort)
If set to True, allows more than one instance of the component to be Active on the same LocalPort . |
void |
setTimeToLive(int timeToLive)
The maximum number of subnets that a multicast datagram can traverse. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public Mcast()
Method Detail |
public boolean isAcceptData()
public void setAcceptData(boolean acceptData) throws IPWorksException
public boolean isActive()
public void setActive(boolean active) throws IPWorksException
public void setDataToSend(byte[] dataToSend) throws IPWorksException
Winsock attempts to send the string assigned to DataToSend as a complete message. If Winsock buffers are full, or the message cannot be delivered for any other reason, an error is fired, and no portion of the message is sent. This is different from TCP where portions of the messages can be sent. UDP sends either a complete message or nothing at all.
If you are sending data to the remote host faster than it can process it, or faster than the network's bandwidth allows, the outgoing queue might fill up. When this happens, DataToSend .
public int getInBufferSize()
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when MCast is activated the InBufferSize property reverts to its defined size. The same happens if you attempt to make it too large or too small.
public void setInBufferSize(int inBufferSize) throws IPWorksException
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when MCast is activated the InBufferSize property reverts to its defined size. The same happens if you attempt to make it too large or too small.
public java.lang.String getLocalHost()
In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the class accept connections only through that interface.
The value of LocalHost is not saved on the form.
public void setLocalHost(java.lang.String localHost) throws IPWorksException
In multihomed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the class accept connections only through that interface.
The value of LocalHost is not saved on the form.
public int getLocalPort()
Setting it to 0 (default) enables Winsock to choose a port at random. The chosen port will be shown by the LocalPort property after the connection is established.
LocalPort cannot be changed once the class is Active . Any attempt to set the LocalPort property when the control is Active will generate an error.
The LocalPort property is useful when trying to send data to services that require a trusted port in the client side.
public void setLocalPort(int localPort) throws IPWorksException
Setting it to 0 (default) enables Winsock to choose a port at random. The chosen port will be shown by the LocalPort property after the connection is established.
LocalPort cannot be changed once the class is Active . Any attempt to set the LocalPort property when the control is Active will generate an error.
The LocalPort property is useful when trying to send data to services that require a trusted port in the client side.
public boolean isLoopback()
public void setLoopback(boolean loopback) throws IPWorksException
public int getMaxPacketSize()
The class poses no restrictions on the packet (datagram) sizes, however, Winsock limits this to WinsockMaxDatagramSize .
public void setMaxPacketSize(int maxPacketSize) throws IPWorksException
The class poses no restrictions on the packet (datagram) sizes, however, Winsock limits this to WinsockMaxDatagramSize .
public java.lang.String getMulticastGroup()
If the first letter of MulticastGroup is "-" or "+" it determines whether the groups should be joined or left respectively. The default operation is join.
To remove the class from a multicast group once it is joined, simply assign this groupname (address) to MulticastGroup prefixed by a minus sign "-".
public void setMulticastGroup(java.lang.String multicastGroup) throws IPWorksException
If the first letter of MulticastGroup is "-" or "+" it determines whether the groups should be joined or left respectively. The default operation is join.
To remove the class from a multicast group once it is joined, simply assign this groupname (address) to MulticastGroup prefixed by a minus sign "-".
public int getOutBufferSize()
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when MCast is activated the OutBufferSize property reverts to its defined size. The same happens if you attempt to make it too large or too small.
public void setOutBufferSize(int outBufferSize) throws IPWorksException
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when MCast is activated the OutBufferSize property reverts to its defined size. The same happens if you attempt to make it too large or too small.
public java.lang.String getReceiveInterface()
The ReceiveInterface property is used together with the MulticastGroup property to join one or more multicast groups. The joining is done after the control is active by assigning proper values to MulticastGroup .
public void setReceiveInterface(java.lang.String receiveInterface) throws IPWorksException
The ReceiveInterface property is used together with the MulticastGroup property to join one or more multicast groups. The joining is done after the control is active by assigning proper values to MulticastGroup .
public java.lang.String getRemoteHost()
public void setRemoteHost(java.lang.String remoteHost) throws IPWorksException
public int getRemotePort()
A valid port number (a value between 1 and 65535) is required.
public void setRemotePort(int remotePort) throws IPWorksException
A valid port number (a value between 1 and 65535) is required.
public java.lang.String getSendInterface()
public void setSendInterface(java.lang.String sendInterface) throws IPWorksException
public boolean isShareLocalPort()
public void setShareLocalPort(boolean shareLocalPort) throws IPWorksException
public int getTimeToLive()
Multicast datagrams with a TimeToLive of 0 are not transmitted on any subnetwork. Multicast datagrams with a TimeToLive of 1 are delivered only on the local network. Multicast datagrams with a TimeToLive of greater than 1 may be delivered to more than one subnetwork if there are one or more multicast routers attached to the first-hop subnetwork.
A multicast router does not forward multicast datagrams with destination addresses between 224.0.0.0 and 224.0.0.255, inclusive, regardless of their TimeToLive . This particular range of addresses is reserved for the use of routing protocols and other low-level topology discovery or maintenance protocols, such as gateway discovery and group membership reporting.
public void setTimeToLive(int timeToLive) throws IPWorksException
Multicast datagrams with a TimeToLive of 0 are not transmitted on any subnetwork. Multicast datagrams with a TimeToLive of 1 are delivered only on the local network. Multicast datagrams with a TimeToLive of greater than 1 may be delivered to more than one subnetwork if there are one or more multicast routers attached to the first-hop subnetwork.
A multicast router does not forward multicast datagrams with destination addresses between 224.0.0.0 and 224.0.0.255, inclusive, regardless of their TimeToLive . This particular range of addresses is reserved for the use of routing protocols and other low-level topology discovery or maintenance protocols, such as gateway discovery and group membership reporting.
public void fireDataIn(byte[] datagram, java.lang.String sourceAddress, int sourcePort)
McastDataInEvent
public void fireError(int errorCode, java.lang.String description)
McastErrorEvent
public void fireReadyToSend()
McastReadyToSendEvent
public void addMcastEventListener(McastEventListener l) throws java.util.TooManyListenersException
public void removeMcastEventListener(McastEventListener l)
|
![]() |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |