У меня есть подходящий ПК с несколькими портами Ethernet. Мне нужно отправлять разные пакеты UDP через разные порты. Как настроить Source IP в Socket Programming для UDP.
Я попробовал следующий код:
public void SendMessage()
{
try
{
ipAddress = "192.168.4.13"; //My source IP
byte[] byteData = Encoding.ASCII.GetBytes("Hello");
mainSocketEthernet = new Socket(AddressFamily.InterNetwork,
SocketType.Raw, System.Net.Sockets.ProtocolType.Udp);
mainSocketEthernet.Bind(new IPEndPoint(IPAddress.Parse(ipAddress), 0));
byte[] byTrue = new byte[4] { 1, 0, 0, 0 };
byte[] byOut = new byte[4] { 1, 0, 0, 0 }; //Capture outgoing packets
//Socket.IOControl is analogous to the WSAIoctl method of Winsock 2
mainSocketEthernet.IOControl(IOControlCode.ReceiveAll, //Equivalent to SIO_RCVALL constant
//of Winsock 2
byTrue,
byOut);
IPEndPoint ipend = new IPEndPoint(IPAddress.Parse(ipAddress), 0);
EndPoint endip = (EndPoint)ipend;
mainSocketEthernet.SendTo(byteData,endip);
}
catch (Exception ex)
{
}
}
Мои IP-адреса источника на подходящем ПК - 192.168.4.13 и 192.168.4.11.
192.168.4.13, подключенные к удаленномуПК с IP 192.168.4.26.
192.168.4.13, подключенный к удаленному ПК с IP 192.168.4.28.
Я хочу отправить "Hello" на 192.168.4.26 через 192.168.4.13 и "хай "к 192.168.4.28 через 192.168.4.11.
Есть идеи или предложения о том, как отправить сообщение через определенный Source Ip в UDP?