-
Notifications
You must be signed in to change notification settings - Fork 0
Java 7+ UDP client and server package based on the Java MulticastSocket class
License
miktim/UdpSocket
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
UdpSocket. Java SE 7+/Android 4+ UDP client and server, MIT (c) 2025 miktim@mail.ru Extends the Java MulticastSocket class Advantage of MulticastSocket class: - this class is supported by old and current versions of Java and Android. Disadvantage: - does not support source-specific multicast (see Java MulticastChannel class). Notes: - the UDP protocol does not guarantee datagram delivery, ordering, or duplicate protection. - the maximum safe UDP payload size is ~508 bytes. - don't forget to open the required UDP port in your firewall. The jar ./dist/udpsocket-... file was generated with debugging info using JDK1.8 for target JRE1.7 package org.miktim.udpsocket Class UdpSocket extends MulticastSocket implements Closeable, AutoCloseable Constants: String VERSION = "4.0.5" Constructors: Constructors create unbounded sockets with reuse enabled, loopback disabled and broadcast on. Sets the network interface (may be null) for outgoing multicast datagrams. For multicast remote address joins address group. UdpSocket(InetSocketAddress remoteSoc, NetworkInterface netIf) throws IOException; UdpSocket(InetAddress remoteAddr, int remotePort, String netIfName) throws IOException; Methods: static void isAvailable(int port); - checks whether the port is available. All send/receive methods bind an unbounded socket to the remote port and set the unassigned address/port of the datagram to the address/port of the remote socket. InetSocketAddress getRemote(); - returns remote socket UdpSocket bind() throws IOException; - binds unbounded socket to remote port void send(DatagramPacket dp) throws IOException; - send datagram void send(byte[] buf) throws IOException; - send buffer void receive(DatagramPacket dp) throws IOException; - wait datagram UdpSocket setPayloadSize(int size); - sets max size of receiving datagram int getPayloadSize(); - default: 1500 bytes boolean isReceiving(); - returns receiving state void receive(UdpSocket.Handler handler); - calls handler onStart method and starts receiving datagrams void close(); - [stops receiving, calls the handler's onClose method,] [leaves initial multicast group,] closes socket interface UdpSocket.Handler { void onStart(UdpSocket us); void onError(UdpSocket us, Exception e); - the socket will be closed after the method exits void onPacket(UdpSocket us, DatagramPacket dp); void onClose(UdpSocket us); - called before closing datagram socket } String toString(); - returns socket info See also inherited DatagramSocket and MulticastSocket methods: https://docs.oracle.com/javase/7/docs/api/java/net/DatagramSocket.html https://docs.oracle.com/javase/7/docs/api/java/net/MulticastSocket.html https://docs.oracle.com/javase/7/docs/api/java/net/DatagramPacket.html Android Multicast Troubleshooting: https://stackoverflow.com/questions/13221736/android-device-not-receiving-multicast-package https://stackoverflow.com/questions/27917605/android-multicastsocket-joingroup-doesnt-trigger-sending-igmp-message
About
Java 7+ UDP client and server package based on the Java MulticastSocket class
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published