Receiving UDP data from UDP Multicast channel
This commit is contained in:
parent
421750f120
commit
0b09d473e4
|
@ -9,15 +9,24 @@ namespace GameDev.UDP
|
||||||
public class UDPManager : MonoBehaviour
|
public class UDPManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] private int _port;
|
[SerializeField] private int _port;
|
||||||
|
[SerializeField] private string _ipAddress;
|
||||||
[SerializeField] private bool listen;
|
[SerializeField] private bool listen;
|
||||||
|
|
||||||
|
[Header("State")]
|
||||||
|
[SerializeField] private byte _watchdog;
|
||||||
|
|
||||||
private UdpClient UdpClient { get; set; }
|
private UdpClient UdpClient { get; set; }
|
||||||
|
|
||||||
private Thread _receiveThread;
|
private Thread _receiveThread;
|
||||||
|
|
||||||
private void Start()
|
private IPAddress _ipAddressParsed;
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
|
_ipAddressParsed = IPAddress.Parse(_ipAddress);
|
||||||
|
|
||||||
UdpClient = new(_port);
|
UdpClient = new(_port);
|
||||||
|
UdpClient.JoinMulticastGroup(_ipAddressParsed);
|
||||||
_receiveThread = new(ReceiveData);
|
_receiveThread = new(ReceiveData);
|
||||||
_receiveThread.IsBackground = true;
|
_receiveThread.IsBackground = true;
|
||||||
_receiveThread.Start();
|
_receiveThread.Start();
|
||||||
|
@ -25,15 +34,15 @@ namespace GameDev.UDP
|
||||||
|
|
||||||
private void ReceiveData()
|
private void ReceiveData()
|
||||||
{
|
{
|
||||||
|
IPEndPoint ipEndPoint = new(_ipAddressParsed, _port);
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
IPEndPoint anyIP = new(IPAddress.Any, _port);
|
var data = UdpClient.Receive(ref ipEndPoint);
|
||||||
var data = UdpClient.Receive(ref anyIP);
|
|
||||||
|
|
||||||
var text = Encoding.UTF8.GetString(data);
|
_watchdog = data[0];
|
||||||
Debug.Log($"Received: {text}");
|
|
||||||
}
|
}
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
|
@ -42,7 +51,7 @@ namespace GameDev.UDP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnApplicationQuit()
|
private void OnDisable()
|
||||||
{
|
{
|
||||||
if (_receiveThread is { IsAlive: true })
|
if (_receiveThread is { IsAlive: true })
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue