Сделал udp клиент на порту 10000, нужно проксировать все пакеты клиентов на некий targetip:port. С этим проблем нету.
Но когда сервер возвращает ответ, то как понять какому из клиентов его отправить?
public class UdpProxy
{
private IPEndPoint target;
private UdpClient client;
int localport;
private Task proxy;
public UdpProxy(string targetaddress, ushort localport)
{
this.target = IPEndPoint.Parse(targetaddress);
this.client = new UdpClient(new IPEndPoint(IPAddress.Any, localport));
this.localport = localport;
}
public void StartProxy()
{
this.proxy = Task.Factory.StartNew(() => {
IPEndPoint _IPEndPoint = null;
while (true) {
try
{
if (client.Available > 0)
{
byte[] _bytes = client.Receive(ref _IPEndPoint);
if (_IPEndPoint == target)
{
//server to client
//???
} else
{
//client to server
client.Send(_bytes, _bytes.Length, target);
}
}
Thread.Sleep(5);
} catch (Exception e) { }
}
});
}