feyris-tan ef86554f9a Import
2025-05-12 22:09:16 +02:00

44 lines
1011 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using NmeaParser;
using NmeaParser.Messages;
namespace skyscraper5.NmeaSharpWrapper
{
internal class NmeaFromUdp : NmeaSharpWrapper
{
public NmeaFromUdp(string ipAdress, int port)
{
this.ipAdress = ipAdress;
this.port = port;
}
private string ipAdress;
private int port;
protected override void ProcessorThread()
{
UdpClient client = new UdpClient();
client.ExclusiveAddressUse = false;
client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
client.Client.Bind(new IPEndPoint(IPAddress.Parse(this.ipAdress),this.port));
CancelRequest = false;
IPEndPoint endPoint = null;
while (!CancelRequest)
{
byte[] receive = client.Receive(ref endPoint);
string s = Encoding.ASCII.GetString(receive);
HandleNmeaMessage(s);
}
client.Close();
}
}
}