UdpClient
2 отговора
110 прегледа
UdpClient
Използвам UdpClient за да пратя пакет към даден адрес/порт (172.16.100.101/161 например). При това Windows автоматично ми дава порт от който излиза моя пакет.
(От снифера:Src Port: 1120 (1120), Dst Port: snmp (161))
Как мога да разбера в моята програма кой порт за изход ми е разрешила ОС?
Ето как пращам пакета:
UdpClient myUdpClient = new UdpClient();
IPEndPoint endp=new IPEndPoint(IPAddress.Parse("172.16.100.101"),161);
myUdpClient.Send(packet,packet.Lenght,endp);
Метода Send връща някаква int която в Help-а не я споменават.
( Пробвах - беше 53)
(От снифера:Src Port: 1120 (1120), Dst Port: snmp (161))
Как мога да разбера в моята програма кой порт за изход ми е разрешила ОС?
Ето как пращам пакета:
UdpClient myUdpClient = new UdpClient();
IPEndPoint endp=new IPEndPoint(IPAddress.Parse("172.16.100.101"),161);
myUdpClient.Send(packet,packet.Lenght,endp);
Метода Send връща някаква int която в Help-а не я споменават.
( Пробвах - беше 53)
Re: UdpClient
Напиши твой клас наследник на UdpClient, например MyUdpClient и в него дефинирай public свойство връщащо Client от базовия клас.
public class MyUdpClient : UdpClient
{
public Socket Socket { get { return base.Client; } }
}
public class MyUdpClient : UdpClient
{
public Socket Socket { get { return base.Client; } }
}
Re: UdpClient
След това можеш да извлечеш порта с:
IPEndPoint ep = Socket.LocalEndPoint as IPEndPoint;
int port = ep.Port;
IPEndPoint ep = Socket.LocalEndPoint as IPEndPoint;
int port = ep.Port;