Skip to content
/ VUDP Public

A simple library for sending and receiving packets over UDP.

License

Notifications You must be signed in to change notification settings

Valkryst/VUDP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Release

Links

Jar Files & Maven

The Maven dependency is hosted off of JitPack, so you will need to add JitPack as a repository before you add VUDP as a dependency.

Maven

JitPack (Example):

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

Dependency:

<dependency>
    <groupId>com.github.Valkryst</groupId>
    <artifactId>VUDP</artifactId>
    <version>1.2.0</version>
</dependency>

Jar

Jar files can be found on the releases page.

Example

In this example, we create a PacketReadWriter, then we continuously send, receive, and display 100 packets on the local machine.

package com.valkryst.VUDP;

import lombok.Getter;
import lombok.NonNull;

import java.io.IOException;
import java.io.Serializable;
import java.net.DatagramPacket;

public class Driver {
    public static void main(String[] args) throws IOException, InterruptedException {
        final String serverHost = "127.0.0.1";
        final int serverPort = 9998;
        final int clientPort = 9998;
        final PacketReadWriter readWriter = new PacketReadWriter(serverHost, serverPort, clientPort);
        readWriter.start();

        for (int i = 0 ; i < 100 ; i++) {
            final Message sendMessage = new Message("Packet #" + i);
            readWriter.queuePacket(sendMessage.toPacket());

            final DatagramPacket packet = readWriter.dequeuePacket();
            final Message receivedMessage = (Message) Package.fromPacket(packet);
            System.out.println("Received Packet: " + receivedMessage.getMessage());

            Thread.sleep(100);
        }

        readWriter.shutdown();
    }

    private static class Message implements Package, Serializable {
        /** The message. */
        @Getter
        private final String message;

        /**
         * Constructs a new Message.
         *
         * @param message
         *          The message.
         */
        public Message(final @NonNull String message) {
            this.message = message;
        }
    }
}