我正在尝试在 Windows 窗体中创建一个 UDP 侦听器。我想监听地址和端点,并希望在表单的文本框中显示接收到的文本。我试图从不同的角度来解决这个问题。
我的尝试之一是尝试使用 BackgroundWorker 来允许侦听器代码继续运行,同时仍然可以控制 UI 线程。当听众继续收听时,我想继续添加发送到多行文本框的 ascii 数据(使用 Visual Studio 2010 和 C#)。我在表单中添加了一个 BackgroundWorker,所以我可以启动和停止监听器。我可以从发件人客户端接收测试并将其显示在 MessageBox 中,但是无法使用相同的文本更新表单上的文本框(这是我真正想要做的)。
我尝试过的另一个角度是尝试堆栈溢出此处的帖子中的代码,该代码使用 UdpClient,该 UdpClient 使用 AsyncCallback 调用 BeginReceive 方法。在示例中,回调使用传入的 UdpClient 调用 EndReceive 方法,获取数据,然后使用 Console.WriteLine 将其打印出来。我尝试了该代码,尝试将接收到的文本添加到表单上的文本框中,但无济于事。有没有办法使用 BackgroundWorkder 或 UdpClient 在表单上的文本框中显示接收到的文本,或者我应该为此使用单独的线程或可能以其他方式进行调查。没有做过任何多线程程序,我在这方面有点新手。任何帮助,将不胜感激。谢谢。