В настоящее время при отправке сообщения в этом простом приложении на C # оно получает сообщение, как будто с другого компьютера в сети. Теперь, если я хочу заставить его сказать, например: «Me: sampleMessage» вместо того, чтобы просто выплевывать IP и порт, как я могу сделать это, не переписывая всю программу?
Я уже пытался сравнить 'ep' с 'groupEP', чтобы найти похожий адрес / порт, но безрезультатно.
namespace ChattApp
{
class Program
{
private const int ListenPort = 11000;
public static IPEndPoint epTemp;
static void Main(string[] args)
{
var listenThread = new Thread(Listener);
listenThread.Start();
Socket socket = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
socket.EnableBroadcast = true;
IPEndPoint ep = new IPEndPoint(IPAddress.Broadcast, 11000);
Thread.Sleep(1000);
while (true)
{
Console.Write(">");
string msg = Console.ReadLine();
byte[] sendbuf = Encoding.UTF8.GetBytes(msg);
socket.SendTo(sendbuf, ep);
epTemp = ep;
Thread.Sleep(200);
}
}
static void Listener()
{
UdpClient listener = new UdpClient(ListenPort);
try
{
while (true)
{
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, ListenPort);
byte[] bytes = listener.Receive(ref groupEP);
DateTime dt = DateTime.Now;
Console.WriteLine("{0} at {1}: {2}\n", groupEP.ToString(), dt.ToString("HH:mm"),
Encoding.UTF8.GetString(bytes, 0, bytes.Length));
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
listener.Close();
}
}
}
}