|
![]() |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--ipworks.Udpport
The UDPPort class is used to facilitate UDP (datagram) communications. 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 interface of the class is similar to the interface of IPPort, only much simpler. 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 IPPort, using the DataToSend property. The destination is specified using the RemoteHost and RemotePort properties. Inbound data is received through the DataIn event.
If the UseConnection property is set to True, then a local association is created with the remote host. Otherwise, the class can receive datagrams (packets) from any host, and send datagrams to any host. Packets can be broadcasted on the local net by setting the destination ( RemoteHost ) to 255.255.255.255.
The operation of the class is almost completely asynchronous. All calls, except the ones that deal with domain name resolution, operate through Windows messages (no blocking calls). The gain in performance is considerable when compared to using blocking calls.
Constructor Summary | |
Udpport()
|
Method Summary | |
void |
addUdpportEventListener(UdpportEventListener 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 UDPPort binds. |
int |
getMaxPacketSize()
The maximum length of the packets that can be received. |
int |
getOutBufferSize()
The size in bytes of the outgoing queue of the socket. |
java.lang.String |
getRemoteHost()
The address of the remote host. |
int |
getRemotePort()
The UDP port in the remote host. |
boolean |
isAcceptData()
Enables or disables data reception (the DataIn event). |
boolean |
isActive()
Enables or disables sending and receiving of data. |
boolean |
isDontRoute()
If set to True, forces the socket to send data directly to interface (no routing). |
boolean |
isShareLocalPort()
If set to True, allows more than one instance of the component to be Active on the same LocalPort . |
boolean |
isUseConnection()
If set, the component connects to the RemoteHost . |
void |
removeUdpportEventListener(UdpportEventListener 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 |
setDontRoute(boolean dontRoute)
If set to True, forces the socket to send data directly to interface (no routing). |
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 UDPPort binds. |
void |
setMaxPacketSize(int maxPacketSize)
The maximum length of the packets that can be received. |
void |
setOutBufferSize(int outBufferSize)
The size in bytes of the outgoing queue of the socket. |
void |
setRemoteHost(java.lang.String remoteHost)
The address of the remote host. |
void |
setRemotePort(int remotePort)
The UDP port in the remote host. |
void |
setShareLocalPort(boolean shareLocalPort)
If set to True, allows more than one instance of the component to be Active on the same LocalPort . |
void |
setUseConnection(boolean useConnection)
If set, the component connects to the RemoteHost . |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public Udpport()
Method Detail |
public boolean isAcceptData()
public void setAcceptData(boolean acceptData) throws IPWorksException
public boolean isActive()
If the UseConnection property is set to True, then a local association (connection) to the remote host and port is also created.
public void setActive(boolean active) throws IPWorksException
If the UseConnection property is set to True, then a local association (connection) to the remote host and port is also created.
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 boolean isDontRoute()
public void setDontRoute(boolean dontRoute) throws IPWorksException
public int getInBufferSize()
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when UDPPort 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 UDPPort 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 class is Active will generate an error.
The LocalPort property is useful when trying to connect 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 class is Active will generate an error.
The LocalPort property is useful when trying to connect to services that require a trusted port in the client side.
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 int getOutBufferSize()
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when UDPPort 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 UDPPort 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 getRemoteHost()
If RemoteHost is set to 255.255.255.255, the class broadcasts data on the local subnet.
If the RemoteHost property is set to a Domain Name, a DNS request is initiated and upon successful termination of the request, the RemoteHost property is set to the corresponding address. If the search is not successful, an error is returned.
If UseConnection is specified, the RemoteHost must be set before the class is activated ( Active is set to True).
public void setRemoteHost(java.lang.String remoteHost) throws IPWorksException
If RemoteHost is set to 255.255.255.255, the class broadcasts data on the local subnet.
If the RemoteHost property is set to a Domain Name, a DNS request is initiated and upon successful termination of the request, the RemoteHost property is set to the corresponding address. If the search is not successful, an error is returned.
If UseConnection is specified, the RemoteHost must be set before the class is activated ( Active is set to True).
public int getRemotePort()
A valid port number (a value between 1 and 65535) is required.
If UseConnection is specified, the RemotePort must be set before the class is activated ( Active is set to True).
public void setRemotePort(int remotePort) throws IPWorksException
A valid port number (a value between 1 and 65535) is required.
If UseConnection is specified, the RemotePort must be set before the class is activated ( Active is set to True).
public boolean isShareLocalPort()
public void setShareLocalPort(boolean shareLocalPort) throws IPWorksException
public boolean isUseConnection()
public void setUseConnection(boolean useConnection) throws IPWorksException
public void fireDataIn(byte[] datagram, java.lang.String sourceAddress, int sourcePort)
UdpportDataInEvent
public void fireError(int errorCode, java.lang.String description)
UdpportErrorEvent
public void fireReadyToSend()
UdpportReadyToSendEvent
public void addUdpportEventListener(UdpportEventListener l) throws java.util.TooManyListenersException
public void removeUdpportEventListener(UdpportEventListener l)
|
![]() |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |